//! Core domain types and persistence contract.
//!
//! This module contains the foundational types for mi6:
//! - [`Event`] and [`EventType`]: Individual events from hooks, OTEL, and transcripts
//! - [`Session`]: Aggregated session state derived from events
//! - [`Storage`]: The persistence trait for storing and querying events/sessions
//! - [`Mi6Error`]: Unified error type for all operations
//! - Domain-specific errors: [`StorageError`], [`ConfigError`], [`InitError`], etc.

pub mod error;
mod event;
mod event_type;
mod session;
mod storage;

pub use error::{
    BoxError, ConfigError, FrameworkResolutionError, InitError, Mi6Error, ScanError, StorageError,
    StringError, TranscriptError, TtlParseError,
};
pub use event::{ApiStats, Event, EventBuilder};
pub use event_type::EventType;
pub use session::{Session, SessionOrder, SessionQuery, SessionStatus};
pub use storage::{EventOrder, EventQuery, Order, Storage, StorageStats, StorageStatsQuery};
