import { LanguageModelV1 } from "ai"; export interface ModelConfig { provider: string; model: string; apiKey?: string; baseUrl?: string; temperature?: number; maxTokens?: number; topP?: number; frequencyPenalty?: number; presencePenalty?: number; } export interface SkillRequirements { minContextWindow?: number; requiresVision?: boolean; requiresTools?: boolean; requiresStreaming?: boolean; preferredProviders?: string[]; maxCostPerMTok?: number; } export interface ModelInstance { id: string; provider: string; model: string; instance: LanguageModelV1; contextWindow: number; maxOutput: number; costPer1kTokens: number; } export interface CostEstimate { provider: string; model: string; inputTokens: number; outputTokens: number; estimatedCost: number; currency: string; } export declare class ModelRouter { private models; private modelMetadata; private apiKeys; private fallbackChain; constructor(config?: Record); private initializeApiKeys; private setupFallbackChain; createModelInstance(provider: string, model: string, overrideConfig?: Partial): Promise; private createProviderInstance; routeToModel(skillRequirements: SkillRequirements, userPreferences?: Partial): Promise; private findSuitableModels; generateResponse(modelInstance: ModelInstance, prompt: string, systemPrompt?: string, options?: { temperature?: number; maxTokens?: number; }): Promise; streamResponse(modelInstance: ModelInstance, prompt: string, systemPrompt?: string, options?: { temperature?: number; maxTokens?: number; onChunk?: (chunk: string) => void; }): Promise; estimateCost(modelInstance: ModelInstance, inputTokens: number, outputTokens: number): CostEstimate; getAvailableModels(): Array<{ provider: string; models: Array<{ id: string; name: string; contextWindow: number; costPer1kTokens: number; }>; }>; listFreeModels(): Array<{ provider: string; model: string; name: string; }>; validateApiKey(provider: string, apiKey: string): Promise; setFallbackChain(providers: string[]): void; getFallbackChain(): string[]; } export declare function createModel(config: ModelConfig): Promise; export declare function getAvailableModels(): Array<{ provider: string; models: Array<{ id: string; name: string; contextWindow: number; costPer1kTokens: number; }>; }>; export default ModelRouter; //# sourceMappingURL=index.d.ts.map