/** * Versioned provider/model token prices. * * Prices are intentionally request-time contracts, not one global multiplier: * uncached input, cache reads, cache writes, and output are distinct billable * dimensions. A catalog match is exact (or an explicitly documented alias), * and every result carries the source and effective date used to compute it. */ export type PriceCurrency = 'USD' | 'CNY'; export interface TokenUsageDimensions { uncachedInputTokens: number; cachedInputTokens: number; cacheWrite5mInputTokens: number; cacheWrite1hInputTokens: number; cacheWriteInputTokens: number; outputTokens: number; } export interface TokenPriceTier { maxInputTokens?: number; uncachedInput: number; cachedInput: number; cacheWrite5m: number | null; cacheWrite1h: number | null; cacheWrite: number | null; output: number; } export interface ModelPriceContract { provider: string; route: string; model: string; aliases: readonly string[]; currency: PriceCurrency; verifiedAt: string; effectiveFrom?: string; effectiveTo?: string; sourceUrl: string; sourceLabel: string; tiers: readonly TokenPriceTier[]; } export interface PricedTokenUsage { available: boolean; provider: string; route: string; requestedModel: string | null; resolvedModel: string | null; currency: PriceCurrency | null; amount: number | null; ratesPerMillion: TokenPriceTier | null; usage: TokenUsageDimensions; breakdown: { uncachedInput: number; cachedInput: number; cacheWrite5m: number; cacheWrite1h: number; cacheWrite: number; output: number; } | null; sourceUrl: string | null; sourceLabel: string; effectiveFrom: string | null; effectiveTo: string | null; verifiedAt: string | null; reason: string | null; } /** Official prices that can be resolved without guessing a model generation. */ export declare const MODEL_PRICE_CATALOG: readonly ModelPriceContract[]; export declare function normalizeUsageDimensions(usage?: Partial): TokenUsageDimensions; export declare function inferProviderRoute(client: string | null | undefined, model: string | null | undefined, provider?: string | null): { provider: string; route: string; }; export declare function priceTokenUsage(input: { client?: string | null; provider?: string | null; route?: string | null; model?: string | null; timestamp?: string; usage?: Partial; }): PricedTokenUsage; //# sourceMappingURL=provider-pricing.d.ts.map