import { AgentLoaderService } from './agent-loader.service'; export interface Tool { name: string; description: string; input_schema: { type: 'object'; properties: Record; required?: string[]; }; output_schema?: { type: 'object'; properties: Record; required?: string[]; }; } export interface ToolExecutionContext { input: Record; runId?: string; threadId?: string; resourceId?: string; agentId?: string; tracingContext?: { taskId?: string; parentSpan?: string; }; } export interface ToolExecutionResult { success: boolean; data?: T; error?: string; metadata?: { executionTime?: number; toolName?: string; runId?: string; }; } export interface ToolExecutor { execute(context: ToolExecutionContext): Promise; } export declare class ToolCallService { private readonly agentLoaderService; private readonly logger; private tools; private codeCrewTool?; constructor(agentLoaderService: AgentLoaderService); setCodeCrewTool(codeCrewTool: any): void; private registerBuiltinTools; private registerMcpTools; register(definition: Tool, executor: ToolExecutor): void; list(): Tool[]; execute(name: string, input: Record, context?: Partial>): Promise; has(name: string): boolean; }