import type { IDictionary, IJodit } from "jodit/esm/types/index";
import type { IToolDefinition } from "../interface/index";
/**
 * Tool Registry - manages available tools and their execution
 */
export declare class ToolRegistry {
    private jodit;
    private tools;
    constructor(jodit: IJodit);
    /**
     * Register built-in tools
     */
    private registerBuiltInTools;
    /**
     * Register custom tools
     */
    private registerCustomTools;
    /**
     * Validate tool definition
     */
    private validateToolDefinition;
    /**
     * Get all registered tools
     */
    getAllTools(): IToolDefinition[];
    /**
     * Get tool by name
     */
    getTool(name: string): IToolDefinition | undefined;
    /**
     * Check if tool exists
     */
    hasTool(name: string): boolean;
    /**
     * Get tool names
     */
    getToolNames(): string[];
    /**
     * Execute a tool
     */
    executeTool(toolName: string, args: IDictionary, signal: AbortSignal): Promise<any>;
    /**
     * Validate tool arguments
     */
    private validateArguments;
    /**
     * Apply parameter defaults defined in tool definition
     */
    private applyDefaults;
    /**
     * Destroy registry
     */
    destruct(): void;
}
