//! Core types and traits for the byokey workspace.
//!
//! This crate defines the shared abstractions used across all layers of the
//! byokey proxy gateway, including error types, provider identifiers, OAuth token
//! representations, and the async traits that each layer implements.

pub mod amp_quota;
pub mod chat;
pub mod error;
pub mod provider;
pub mod ratelimit;
pub mod token;
pub mod traits;

pub use amp_quota::{AmpQuotaSnapshot, AmpQuotaStore};
pub use chat::ChatRequest;
pub use error::{ByokError, Result};
pub use provider::ProviderId;
pub use provider::ThinkingCapability;
pub use ratelimit::{RateLimitSnapshot, RateLimitStore};
pub use token::{AccountInfo, OAuthToken, TokenState};
pub use traits::{
    ByteStream, ChatHistoryStore, ConversationSummary, MessageRecord, ProviderExecutor,
    ProviderResponse, RequestTranslator, ResponseTranslator, TokenStore, UsageBucket, UsageRecord,
    UsageStore,
};
