export interface DailyModelUsage { inputTokens: number; outputTokens: number; calls: number; } /** model → DailyModelUsage */ export type DayEntry = Record; /** YYYY-MM-DD → DayEntry */ export type UsageData = Record; export interface UsageSummary { date: string; model: string; inputTokens: number; outputTokens: number; totalTokens: number; calls: number; } /** * Record token usage for a single LLM call. * Called by providers after each API call. * Also feeds the analytics service for cost tracking. */ export declare function recordUsage(model: string, inputTokens: number, outputTokens: number, prompt?: ChatCall['prompt'], response?: string): Promise; /** * Get usage for a specific model over the last N days. */ export declare function getModelUsage(model: string, days?: number): Promise; /** * Get usage for all models over the last N days. */ export declare function getAllUsage(days?: number): Promise; /** * Get daily totals (all models combined) over the last N days. */ export declare function getDailyTotals(days?: number): Promise; /** * Get list of all models that have recorded usage. */ export declare function getTrackedModels(): Promise; export interface ChatCall { model: string; inputTokens: number; outputTokens: number; costUsd: number; prompt?: { system?: string; messages: { role: string; content: string; }[]; }; response?: string; } export interface ChatTokenTotals { inputTokens: number; outputTokens: number; totalTokens: number; calls: ChatCall[]; } /** * Run an async function with per-chat token tracking. * Returns both the function's result and accumulated token totals. */ export declare function runWithTokenTracker(fn: () => Promise): Promise<{ result: T; tokens: ChatTokenTotals; }>; //# sourceMappingURL=token-usage.d.ts.map