/** * ROUTING ENGINE - Advanced request routing with multiple strategies * Routes requests to appropriate model adapters based on policies */ import { RoutingPolicy, RoutingStrategy, ModelConnector } from '../../types/policies'; import { VendorRequest } from '../../types/vendors'; import { BaseAdapter } from '../adapters/base-adapter'; export interface RoutingContext { request: VendorRequest; user_id?: string; session_id?: string; trace_id?: string; timestamp: Date; user_location?: { country?: string; region?: string; }; request_metadata?: Record; } export interface RoutingDecision { selected_connectors: ConnectorSelectionResult[]; strategy_used: RoutingStrategy; reason: string; metadata: Record; } export interface ConnectorSelectionResult { connector: ModelConnector; adapter: BaseAdapter; weight?: number; selection_reason?: string; } export declare class RoutingEngine { private round_robin_indices; /** * Main routing decision method */ route(policy: RoutingPolicy, context: RoutingContext, connectors: ModelConnector[], adapters: Map): Promise; private routeWeighted; private routeConditional; private evaluateConditions; private getContextValue; private compareValues; private routeCascade; private routeEnsemble; private routeCostOptimized; private routeLatencyOptimized; private routeTimeWindowed; private routeGeoBased; private routeCapabilityBased; private routeRoundRobin; } //# sourceMappingURL=routing-engine.d.ts.map