//#region src/types.d.ts /** * Normalized token usage shape across providers. * * Notes: * - Missing fields are normalized to `0` by helpers like `normalizeTokenUsage()`. * - `totalTokens` may be omitted by providers; callers can treat it as advisory. */ type TokenUsageNormalized = { inputTokens: number; outputTokens: number; /** Input tokens excluding cache reads and cache creation, when cache usage is known. */ uncachedInputTokens?: number; cachedInputTokens?: number; cacheCreationInputTokens?: number; reasoningTokens?: number; totalTokens?: number; }; /** Per-token USD pricing. */ type Pricing = { inputUsdPerToken: number; outputUsdPerToken: number; cachedInputUsdPerToken?: number; cacheCreationInputUsdPerToken?: number; }; /** Map of model id → pricing. */ type PricingMap = Record; /** * Resolve pricing for a model id. * * Can be async to fetch catalogs on-demand. */ type PricingResolver = (modelId: string) => Pricing | null | Promise; /** USD cost breakdown (all input categories/output/total). */ type CostBreakdown = { inputUsd: number; outputUsd: number; totalUsd: number; }; //#endregion export { TokenUsageNormalized as a, PricingResolver as i, Pricing as n, PricingMap as r, CostBreakdown as t };