//! gRPC service implementations for the Photon credit-control reference service.
//!
//! The goal is to prove quota and admission control can be integrated with
//! Photon IAM and gateway flows without turning this crate into a full billing
//! product.

mod billing;
mod flaredb_storage;
mod sql_storage;
mod credit_service;
mod gateway_credit_service;
mod nightlight;
mod storage;

pub use billing::{
    MockUsageMetricsProvider, PricingRules, ProjectBillingResult, ResourceUsage, UsageMetrics,
    UsageMetricsProvider,
};
pub use flaredb_storage::FlareDbStorage;
pub use sql_storage::SqlStorage;
pub use credit_service::CreditServiceImpl;
pub use gateway_credit_service::GatewayCreditServiceImpl;
pub use nightlight::NightLightClient;
pub use storage::{CreditStorage, InMemoryStorage};
