export interface OpenRouterModel { id: string; name: string; description: string; pricing: { prompt: string; completion: string; }; context_length: number; architecture: { modality: string; tokenizer: string; instruct_type?: string; }; top_provider: { context_length: number; max_completion_tokens?: number; is_moderated: boolean; }; per_request_limits?: { prompt_tokens: string; completion_tokens: string; }; } export interface OpenRouterResponse { id: string; choices: Array<{ message: { role: string; content: string; }; finish_reason: string; }>; usage: { prompt_tokens: number; completion_tokens: number; total_tokens: number; }; model: string; } export interface ChatMessage { role: 'user' | 'assistant' | 'system'; content: string; } export interface ChatCompletionOptions { model: string; messages: ChatMessage[]; maxTokens?: number; temperature?: number; topP?: number; stream?: boolean; } export declare class OpenRouterClient { private client; private logger; private modelsCache; private cacheExpiry; private readonly CACHE_DURATION; private rateLimiter; private apiKey; constructor(apiKey?: string, baseURL?: string); private validateAPIKeyForRequest; private validateAPIKeyStrict; validateAPIKeyWithService(): Promise<{ valid: boolean; reason?: string; }>; updateAPIKey(apiKey: string): void; hasValidAPIKey(): boolean; getAvailableModels(forceRefresh?: boolean): Promise; getModelsByType(type?: 'chat' | 'completion' | 'vision'): Promise; getClaudeModels(): Promise; isModelAvailable(modelId: string): Promise; getBestClaudeModel(prioritizePricing?: boolean): Promise; private selectMostCostEffectiveModel; selectBestModelForAgent(agentType: string, taskComplexity?: 'simple' | 'medium' | 'complex', prioritizePricing?: boolean, manualOverride?: string): Promise; private filterModelsByCapability; private selectBestPerformanceModel; compareModelCosts(modelIds: string[], estimatedPromptTokens?: number, estimatedCompletionTokens?: number): Promise>; chatCompletion(options: ChatCompletionOptions): Promise; getModelInfo(modelId: string): Promise; streamChatCompletion(_options: ChatCompletionOptions, _onChunk: (chunk: string) => void): Promise; estimateCost(modelId: string, promptTokens: number, completionTokens: number): Promise; getRateLimitStatus(): any; getAPIMetrics(): any; resetRateLimit(): void; destroy(): void; private validateChatCompletionOptions; private sanitizeMessages; private sanitizeModels; private sanitizeChatResponse; private sanitizeErrorMessage; private sanitizeString; } //# sourceMappingURL=openrouter-client.d.ts.map