/** * Token Metrics Tracker * Tracks token usage for find, run, and code-mode to measure efficiency gains */ export interface TokenMetric { timestamp: string; type: 'find' | 'run' | 'code'; estimatedTokens: number; toolsFound?: number; query?: string; toolExecuted?: string; toolsExecuted?: number; linesOfCode?: number; savings?: { wouldHaveCost: number; actualCost: number; saved: number; }; } export interface TokenMetricsReport { totalExecutions: number; breakdown: { find: number; run: number; code: number; }; totalTokensUsed: number; totalTokensSaved: number; avgTokensPerExecution: { find: number; run: number; code: number; }; codeModeEfficiency: { executions: number; avgToolsPerExecution: number; avgTokensPerExecution: number; totalSavings: number; percentSavings: number; }; timeRange: { start: string; end: string; }; } export declare class TokenMetricsTracker { private metricsFile; private metrics; private loaded; private static readonly AVG_TOKENS_PER_CHAR; private static readonly AVG_FIND_RESPONSE_TOKENS; private static readonly AVG_RUN_RESPONSE_TOKENS; constructor(); /** * Estimate tokens in a text string */ static estimateTokens(text: string): number; /** * Load metrics from disk */ private load; /** * Save metrics to disk */ private save; /** * Track a find operation */ trackFind(response: string, toolsFound: number, query?: string): Promise; /** * Track a run operation */ trackRun(response: string, toolExecuted: string): Promise; /** * Track a code-mode operation */ trackCode(response: string, code: string, toolsExecuted: number): Promise; /** * Generate analytics report */ generateReport(daysBack?: number): Promise; /** * Clear old metrics (older than specified days) */ cleanup(daysToKeep?: number): Promise; } //# sourceMappingURL=token-metrics.d.ts.map