import { z } from 'zod'; import { CallToolResult } from '@modelcontextprotocol/sdk/types.js'; import { OpenRouterConfig } from '../../types/workflow.js'; export interface ToolExecutionContext { sessionId: string; transportType?: string; [key: string]: unknown; } export type ToolExecutor = (params: Record, config: OpenRouterConfig, context?: ToolExecutionContext) => Promise; export interface ToolDefinition { name: string; description: string; inputSchema: z.ZodRawShape; executor: ToolExecutor; } export declare class ToolRegistry { private tools; private config; private constructor(); static getInstance(config?: OpenRouterConfig): ToolRegistry; registerTool(definition: ToolDefinition): void; getTool(toolName: string): ToolDefinition | undefined; getAllTools(): ToolDefinition[]; getRegistrationStats(): { totalRegistered: number; toolNames: string[]; }; isToolRegistered(toolName: string): boolean; clearRegistryForTesting(): void; } export declare function registerTool(definition: ToolDefinition): void; export declare function processPendingToolRegistrations(): void; export declare function getTool(toolName: string): ToolDefinition | undefined; export declare function getAllTools(): ToolDefinition[]; export declare function executeTool(toolName: string, params: Record, config: OpenRouterConfig, context?: ToolExecutionContext): Promise; export declare function isToolRegistered(toolName: string): boolean; export declare function clearRegistryForTesting(): void; //# sourceMappingURL=toolRegistry.d.ts.map