import { ModelPricing, PricingConfig } from '../config/types.js'; export interface CostCalculation { inputCost: number; outputCost: number; totalCost: number; } /** * PricingService manages token pricing data. * * It merges hardcoded default pricing with optional user config overrides. * User overrides take precedence over defaults. */ export declare class PricingService { private pricing; constructor(configPricing?: PricingConfig); /** * Deep merge pricing configs. Overrides take precedence. */ private mergePricing; /** * Resolve provider name, checking for aliases. * First checks if provider exists directly, then checks aliases. */ private resolveProvider; /** * Get pricing for a specific provider and model. * Returns undefined if pricing is not configured. * Supports provider aliases. */ getPricing(provider: string, model: string): ModelPricing | undefined; /** * Calculate the cost for a given number of tokens. * Returns null if pricing is not configured for the provider/model. */ calculateCost(provider: string, model: string, promptTokens: number, completionTokens: number): CostCalculation | null; /** * Check if pricing is configured for a provider/model combination. * Supports provider aliases. */ hasPricingFor(provider: string, model: string): boolean; /** * Get all pricing data (for debugging/display). * Returns a deep copy to prevent external mutation. */ getAllPricing(): PricingConfig; /** * Get list of all configured providers. */ getProviders(): string[]; /** * Get list of all models for a provider. * Supports provider aliases. */ getModelsForProvider(provider: string): string[]; } //# sourceMappingURL=pricing.d.ts.map