interface TokenUsage { promptTokens: number; completionTokens: number; totalTokens: number; } interface CostEstimate { inputCost: number; outputCost: number; totalCost: number; currency: string; tokenUsage: TokenUsage; modelId: string; savingsVsDefault?: number; percentileCost?: number; } interface CostComparison { models: Map; cheapest: { modelId: string; cost: number; }; mostExpensive: { modelId: string; cost: number; }; averageCost: number; } interface UsageRecord { timestamp: Date; modelId: string; provider: string; tokenUsage: TokenUsage; cost: CostEstimate; requestId: string; success: boolean; errorCode?: string; } interface CostSummary { totalCost: number; totalRequests: number; totalTokens: number; averageCostPerRequest: number; costByModel: Map; costByProvider: Map; period: { start: Date; end: Date; }; } interface BudgetAlert { type: 'warning' | 'critical' | 'exceeded'; threshold: number; current: number; percentage: number; period: 'daily' | 'monthly' | 'total'; timestamp: Date; } export type { BudgetAlert as B, CostSummary as C, TokenUsage as T, UsageRecord as U, CostEstimate as a, CostComparison as b };