import { ConfigManager } from '../utils/config-manager'; export interface ModelInfo { id: string; name: string; provider: string; description: string; contextLength: number; pricing: { prompt: number; completion: number; }; capabilities: { vision: boolean; functionCalling: boolean; streaming: boolean; }; isAvailable: boolean; lastUpdated: Date; } export interface ModelPreferences { preferredModel?: string; fallbackModels: string[]; maxCostPerRequest?: number; requireVision?: boolean; requireFunctionCalling?: boolean; minContextLength?: number; } export declare class ModelManager { private openRouterClient; private configManager; private logger; private availableModels; private lastSync; private syncInterval; constructor(configManager: ConfigManager); initialize(): Promise; private startPeriodicSync; syncModels(): Promise; private convertOpenRouterModels; private extractProvider; private logModelChanges; getAvailableModels(filters?: { provider?: string; hasVision?: boolean; hasFunctionCalling?: boolean; minContextLength?: number; maxCostPerToken?: number; }): Promise; getClaudeModels(): Promise; getBestAvailableModel(preferences?: ModelPreferences): Promise; getModelInfo(modelId: string): Promise; isModelAvailable(modelId: string): Promise; estimateRequestCost(modelId: string, promptTokens: number, completionTokens: number): Promise; getLastSyncTime(): Date | null; getModelStats(): Promise<{ totalModels: number; availableModels: number; providers: string[]; capabilities: { visionModels: number; functionCallingModels: number; streamingModels: number; }; }>; destroy(): void; } //# sourceMappingURL=model-manager.d.ts.map