/**
 * Request router for MCP
 */
import { MCPRequest } from "../utils/types.js";
import { ILogger } from "../core/logger.js";
import { ToolRegistry } from "./tools.js";
import { PromptRegistry } from "./prompts.js";
/**
 * Request router implementation
 */
export declare class RequestRouter {
    private toolRegistry;
    private promptRegistry;
    private logger;
    private totalRequests;
    private successfulRequests;
    private failedRequests;
    constructor(toolRegistry: ToolRegistry, promptRegistry: PromptRegistry, logger: ILogger);
    /**
     * Routes a request to the appropriate handler
     */
    route(request: MCPRequest): Promise<unknown>;
    /**
     * Gets router metrics
     */
    getMetrics(): {
        totalRequests: number;
        successfulRequests: number;
        failedRequests: number;
    };
    /**
     * Handles built-in RPC methods
     */
    private handleRPCMethod;
    /**
     * Handles tool-related methods
     */
    private handleToolMethod;
    /**
     * Handles prompt-related methods
     */
    private handlePromptMethod;
    /**
     * Discovers all available methods
     */
    private discoverMethods;
    /**
     * Describes a specific method
     */
    private describeMethod;
    /**
     * Invokes a tool with the given parameters
     */
    private invokeTool;
    /**
     * Gets a prompt with the given parameters
     */
    private getPrompt;
    /**
     * Describes a tool
     */
    private describeTool;
}
//# sourceMappingURL=router.d.ts.map