/**
 * MCP tool dispatch router (Phase 3 split).
 *
 * Extracted from mcp.ts to keep each file under 1500 LOC.
 * Receives a fully-populated McpHandlerCtx and routes to the
 * correct handler group based on tool name.
 *
 * No business logic lives here — this is a pure routing table.
 */
import type { McpHandlerCtx } from './types.js';
import type { ExecutionContext } from '../../../engines/middleware-pipeline.js';
export type McpToolResult = {
    content: Array<{
        type: string;
        text: string;
    }>;
};
/**
 * Route a tool call to the appropriate handler group.
 *
 * Returns the handler's result, or throws if no group claims the tool name
 * (which means the outer switch in handleToolCall will fall through to the
 * synapse/architects delegation that already ran before dispatch is called).
 */
export declare function dispatchMcpToolCall(hctx: McpHandlerCtx, request: any, args: Record<string, unknown>, ctx?: ExecutionContext): Promise<McpToolResult | undefined>;
