import { type CanonicalDegradation, type CanonicalLLMRequest } from './canonical.js'; import { type ModelSelectionContext, type ProviderName, type RoutingInfo } from './model-catalog.js'; import type { BuiltInToolType, CacheHints, LLMRequest } from './types.js'; export interface GatewayRouteRequirements { streaming: boolean; toolCalling: boolean; structuredOutput: boolean; vision: boolean; builtInTools: BuiltInToolType[]; lora: boolean; } export interface GatewayRouteCapabilityReport { supportsStreaming: boolean; supportsTools: boolean; supportsVision: boolean; supportsPromptCache: boolean; supportsBuiltInTools: BuiltInToolType[]; maxContextLength: number | undefined; } export interface GatewayRouteCachePlan { strategy: CacheHints['strategy']; providerPromptCache: boolean; responseCache: boolean; key: string | undefined; ttl: CacheHints['ttl']; sessionId: string | undefined; cacheablePrefix: CacheHints['cacheablePrefix']; } export interface GatewayRoutePlan { canonicalRequest: CanonicalLLMRequest; legacyRequest: LLMRequest; routing: RoutingInfo; selectedProvider: ProviderName; selectedModel: string; useCase: RoutingInfo['useCase']; estimatedInputTokens: number; requirements: GatewayRouteRequirements; capabilities: GatewayRouteCapabilityReport; cache: GatewayRouteCachePlan; degradations: CanonicalDegradation[]; warnings: string[]; } export declare function getGatewayRoutePlan(request: LLMRequest | CanonicalLLMRequest, availableProviders?: ProviderName[], context?: ModelSelectionContext): GatewayRoutePlan; //# sourceMappingURL=gateway-routing.d.ts.map