/** * Cost Tracker - Token usage and cost calculation for LLM benchmarking * * Pricing data based on official provider pricing (as of December 2024). * Prices are per 1M tokens (input/output). */ export interface ModelPricing { input: number; output: number; } export interface ModelCostData { input_tokens: number; output_tokens: number; cost: number; } export interface CostSummary { total_input_tokens: number; total_output_tokens: number; total_tokens: number; total_cost_usd: number; by_model: Record; } export interface TokenUsage { input_tokens: number; output_tokens: number; total_tokens: number; method: 'actual' | 'estimated'; } export interface CostInfo { total_usd: number; input_cost_usd: number; output_cost_usd: number; model: string; } /** * Track token usage and calculate costs for LLM API calls. */ export declare class CostTracker { private totalInputTokens; private totalOutputTokens; private totalCost; private modelCosts; /** * Normalize model name for pricing lookup. */ static normalizeModelName(model: string): string; /** * Get pricing for a specific model. */ static getModelPricing(model: string): ModelPricing; /** * Calculate cost for token usage. */ static calculateCost(inputTokens: number, outputTokens: number, model: string): number; /** * Estimate tokens from text (rough approximation: 1 token ≈ 4 characters). */ static estimateTokens(text: string): number; /** * Extract token usage from OpenAI API response. */ static extractTokenUsage(response: Record): { input: number; output: number; }; /** * Add token usage to tracker. */ addUsage(inputTokens: number, outputTokens: number, model: string, cost?: number): void; /** * Get cost tracking summary. */ getSummary(): CostSummary; /** * Reset tracker. */ reset(): void; } //# sourceMappingURL=cost-tracker.d.ts.map