/** * Model Router * * Routes tasks to appropriate models based on: * - Task complexity and type * - Routing rules configuration * - Cost optimization strategy * - Available model capabilities */ import { ModelConfig, MultiModelConfig, TaskClassificationResult, TaskComplexity, ModelSelection, RoutingRule, ModelRole } from './types.js'; /** * Model Router - routes tasks to appropriate models */ export declare class ModelRouter { private config; private models; private routingRules; private roleAssignments; constructor(config: MultiModelConfig); private initializeModels; private initializeRoles; /** * Classify a task to determine complexity and type */ classifyTask(taskDescription: string): TaskClassificationResult; /** * Select the appropriate model for a task */ selectModel(complexity: TaskComplexity, taskType: string, keywords: string[]): ModelSelection; private buildReasoning; /** * Estimate cost for a model invocation */ estimateCost(model: ModelConfig, inputTokens: number, outputTokens: number): number; /** * Get model by ID */ getModel(modelId: string): ModelConfig | undefined; /** * Get model for a specific role */ getModelForRole(role: ModelRole): ModelConfig | undefined; /** * Get all configured models */ getAllModels(): ModelConfig[]; /** * Get routing analysis for debugging */ analyzeRouting(taskDescription: string): { classification: TaskClassificationResult; matchedRules: Array<{ rule: RoutingRule; matched: boolean; reason: string; }>; costComparison: Array<{ model: string; cost: number; }>; }; } /** * Create a router instance from config */ export declare function createRouter(config: MultiModelConfig): ModelRouter; /** * Default router with cost-optimized settings */ export declare function createCostOptimizedRouter(): ModelRouter; /** * Default router with performance-first settings */ export declare function createPerformanceRouter(): ModelRouter; //# sourceMappingURL=router.d.ts.map