/**
 * Custom Function Tool - Bridge between AI and custom registered functions
 *
 * This tool allows the AI to call user-registered functions as if they were
 * built-in tools. It acts as a dynamic dispatcher.
 */
import { FunctionRegistry } from "../functions/function-registry";
export interface CustomFunctionToolInput {
    function_name: string;
    arguments: any[] | string;
}
export interface CustomFunctionToolResult {
    success: boolean;
    result?: any;
    error?: string;
    function_name: string;
    execution_time_ms: number;
}
export declare class CustomFunctionTool {
    private registry;
    constructor(registry: FunctionRegistry);
    execute(input: CustomFunctionToolInput): Promise<CustomFunctionToolResult>;
    getDefinition(): {
        name: string;
        description: string;
        inputSchema: {
            type: string;
            properties: {
                function_name: {
                    type: string;
                    description: string;
                    enum: string[];
                };
                arguments: {
                    oneOf: ({
                        type: string;
                        description: string;
                        items: {
                            type: string;
                        };
                    } | {
                        type: string;
                        description: string;
                        items?: undefined;
                    })[];
                };
            };
            required: string[];
        };
    };
    /**
     * Get detailed definitions for all registered functions
     * This provides better context to the AI about what each function does
     */
    getDetailedDefinitions(): Array<{
        name: string;
        description: string;
        inputSchema: any;
    }>;
}
//# sourceMappingURL=custom-function-tool.d.ts.map