import { b as ModelFilter, a as Model } from './ModelCatalog-BcfW6bZr.mjs'; type RoutingStrategy = 'cost' | 'performance' | 'balanced' | 'capability' | 'custom'; interface SelectionCriteria extends ModelFilter { tier?: 'budget' | 'balanced' | 'premium'; fallbackModels?: string[]; preferredProviders?: string[]; excludeProviders?: string[]; strategy?: RoutingStrategy; maxFallbacks?: number; } interface SelectionResult { modelId: string; model: Model; provider: string; expectedCost: number; estimatedLatency?: number; reason: string; alternatives: Array<{ modelId: string; score: number; reason: string; }>; confidence: number; } interface IRouter { route(query: string, criteria: SelectionCriteria): Promise; getName(): string; } interface RouterWeight { cost: number; performance: number; capability: number; reliability: number; } interface RoutingMetrics { totalRequests: number; successfulRoutes: number; failedRoutes: number; averageSelectionTime: number; modelUsageCount: Map; } export type { IRouter as I, RoutingStrategy as R, SelectionCriteria as S, SelectionResult as a, RouterWeight as b, RoutingMetrics as c };