use async_trait::async_trait;
use crate::error::Result;
use super::events::{BillingEvent, SessionSummary, TranscriptEntry};
#[async_trait]
pub trait BillingStorage: Send + Sync {
async fn record_event(&self, event: &BillingEvent) -> Result<()>;
async fn finalize_session(
&self,
summary: &SessionSummary,
transcripts: &[TranscriptEntry],
) -> Result<()>;
}
pub mod log_storage;
#[cfg(feature = "db-postgres")]
pub mod postgres;