"""core.storage — Genesis Cold Ledger storage layer.

Public surface for the Postgres schema module, the ColdLedger client,
the SwarmSagaWriter, the EventSourcingStream, and the SessionStore.
"""

from core.storage.postgres_schema import (
    create_all_tables,
    drop_all_tables,
    SESSIONS_DDL,
    EVENTS_DDL,
    SWARM_SAGAS_DDL,
)
from core.storage.cold_ledger import ColdLedger, SwarmSaga
from core.storage.saga_writer import SwarmSagaWriter
from core.storage.event_sourcing import EventSourcingStream, GenesisEvent
from core.storage.session_store import SessionStore
from core.storage.cold_ledger_interceptor import ColdLedgerInterceptor
from core.storage.shadow_router import ShadowRouter, ShadowResult

__all__ = [
    # Schema / DDL
    "create_all_tables",
    "drop_all_tables",
    "SESSIONS_DDL",
    "EVENTS_DDL",
    "SWARM_SAGAS_DDL",
    # Client
    "ColdLedger",
    "SwarmSaga",
    # Saga lifecycle
    "SwarmSagaWriter",
    # Event sourcing
    "EventSourcingStream",
    "GenesisEvent",
    # Session lifecycle
    "SessionStore",
    # Interceptor wiring
    "ColdLedgerInterceptor",
    # Side-effect gating
    "ShadowRouter",
    "ShadowResult",
]
