/** Provider-neutral token counters persisted by the AI invocation ledger. */ export interface NormalizedAiUsage { inputTokens: number; outputTokens: number; cachedInputTokens: number; cacheWriteTokens: number; reasoningTokens: number; toolTokens: number; } export type AiUsageChunk = Partial; export type AiUsageAggregationMode = 'delta' | 'cumulative'; /** * Aggregates streaming provider usage without guessing whether chunks are * deltas or cumulative snapshots. The caller must select the provider's * documented mode; cumulative counters fail loudly if they regress. */ export declare class AiUsageAccumulator { readonly mode: AiUsageAggregationMode; private total; constructor(mode: AiUsageAggregationMode); observe(chunk: AiUsageChunk): NormalizedAiUsage; value(): NormalizedAiUsage; }