import type { Mode, ProviderId, ToolDefinition } from "../../types.js"; import type { ToolCallingMode } from "../../llm/tool-protocol.js"; import { resolveToolDialect } from "../../llm/capabilities.js"; export interface ToolRoutingInput { readonly mode: Mode; readonly mcpPresent: boolean; readonly mcpToolNames: readonly string[]; readonly mcpToolDefinitions: readonly ToolDefinition[]; readonly skillsAvailable: boolean; readonly toolCalling: ToolCallingMode | undefined; readonly useCompactSystemPrompt: () => boolean; } export interface ToolRouting { readonly routeToolNames: (provider: ProviderId, model: string) => string[]; readonly resolveNativeTools: (provider: ProviderId, model: string) => { dialect: ReturnType; native: boolean; }; readonly selectToolDefs: (native: boolean, compact: boolean, provider: ProviderId, model: string) => ToolDefinition[] | undefined; readonly buildStableSystemContent: (native: boolean, provider: ProviderId, model: string) => string; } export declare const createToolRouting: (input: ToolRoutingInput) => ToolRouting;