pub mod domain;
pub mod engine;
pub mod storage;
pub mod config;
pub mod observability;
pub mod metrics;
pub mod compression;
pub mod forecasting;
pub mod export;
pub use domain::{
CostOpsError, Result, Provider, UsageRecord, CostRecord,
PricingTable, PricingStructure, Currency,
};
pub use engine::{CostCalculator, TokenNormalizer, CostAggregator};
pub use storage::{
CostRepository, PricingRepository, UsageRepository,
};
pub use metrics::{init_metrics, MetricsConfig};
pub use compression::{
CompressionAlgorithm, CompressionLevel, CompressionConfig,
Compressor, compress, decompress, CompressionLayer, compression_layer,
};
pub use observability::{
ObservabilityConfig,
ObservabilityMetricsConfig,
TracingConfig, TracingFormat,
LoggingConfig, LoggingFormat, HealthConfig, OtlpConfig,
MetricsRegistry, MetricsError, Timer, start_timer,
CorrelationId, RequestId, TraceContext,
init_tracing_with_config, create_span_with_context,
info_span_with_context, debug_span_with_context, trace_span_with_context,
warn_span_with_context, error_span_with_context,
extract_trace_context_from_headers, inject_trace_context_into_headers,
TraceContextLayer,
LogLevel, LogEntry, StructuredLogger, PerformanceLogger,
HealthStatus, ComponentHealth, SystemHealth,
HealthCheck, HealthChecker,
DatabaseHealthCheck, CacheHealthCheck, ExternalServiceHealthCheck,
FunctionHealthCheck,
init_observability, ObservabilityStack,
};
pub use forecasting::{
DataPoint, TimeSeriesData, ForecastConfig, ForecastHorizon, TrendDirection,
SeasonalityPattern, ForecastModel, LinearTrendModel, MovingAverageModel,
ExponentialSmoothingModel, ForecastEngine, ForecastRequest, ForecastMetrics,
AnomalyDetector, AnomalyResult, AnomalyMethod, BudgetForecaster,
BudgetForecast, BudgetAlert, AlertSeverity,
};
pub use export::{
ExportFormat, ExportData, Exporter, create_exporter,
ReportType, ReportRequest, ReportResponse, ReportGenerator,
CostReport, UsageReport, ForecastReport, AuditReport,
ReportFilters, ReportSummary, DateRange,
ExportConfig, EmailConfig, StorageConfig, ScheduledReportConfig,
DeliveryTarget, ReportFiltersConfig,
DeliveryMethod, DeliveryRequest, DeliveryResponse, DeliveryStatus,
ReportDelivery, EmailDelivery, StorageDelivery, WebhookDelivery,
DeliveryCoordinator,
ReportScheduler, CronScheduler, ScheduledReportStatus, ScheduledExecutionResult,
ExportError, ExportResult,
};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub fn init() -> Result<()> {
observability::init_tracing();
Ok(())
}