/** * Cost Tracker - Track token usage and costs across LLM requests */ export interface ModelPricing { inputCostPer1k: number; outputCostPer1k: number; } export interface TokenUsage { inputTokens: number; outputTokens: number; totalTokens: number; } export interface RequestStats { timestamp: number; model: string; usage: TokenUsage; cost: number; latencyMs?: number; } export interface SessionStats { totalInputTokens: number; totalOutputTokens: number; totalTokens: number; totalCost: number; requestCount: number; avgLatencyMs: number; startTime: number; requests: RequestStats[]; } /** * Model pricing data (USD per 1K tokens) */ export declare const MODEL_PRICING: Record; /** * Cost Tracker class */ export declare class CostTracker { private stats; private customPricing; constructor(); private createEmptyStats; /** * Add a request's token usage */ addUsage(model: string, inputTokens: number, outputTokens: number, latencyMs?: number): RequestStats; /** * Calculate cost for token usage */ calculateCost(model: string, inputTokens: number, outputTokens: number): number; /** * Get pricing for a model */ getPricing(model: string): ModelPricing; /** * Set custom pricing for a model */ setCustomPricing(model: string, pricing: ModelPricing): void; /** * Get current session stats */ getStats(): SessionStats; /** * Get summary string */ getSummary(): string; /** * Get detailed breakdown by model */ getBreakdownByModel(): Record; /** * Reset stats */ reset(): void; /** * Export stats to JSON */ toJSON(): SessionStats; /** * Import stats from JSON */ fromJSON(data: SessionStats): void; get totalTokens(): number; get totalCost(): number; get requests(): number; } /** * Create a cost tracker instance */ export declare function createCostTracker(): CostTracker; /** * Estimate tokens from text (rough approximation) */ export declare function estimateTokens(text: string): number; /** * Format cost as currency string */ export declare function formatCost(cost: number): string;