import type { CompletionRequest } from '../types/messages.js'; import type { NexusAIConfig } from '../types/config.js'; import type { BaseProvider } from '../providers/base.js'; import type { RouteDecision } from './types.js'; import type { ProviderHealthSnapshot } from '../ops/health.js'; /** * Chooses where a request goes: a direct model, a matching rule, or the auto-router's ranking, with * the fallbacks `routing.fallback` adds on top. */ export declare class Router { private autoRouter; private rulesRouter; /** Routes one request. Throws when a directly named model's provider is not configured. */ route(request: CompletionRequest, config: NexusAIConfig, providers: Map, health?: ProviderHealthSnapshot[], openCircuits?: readonly string[]): RouteDecision; private choose; } export type { RouteAttempt, RouteDecision, RouterContext } from './types.js'; export { FailoverExecutor } from './failover.js';