/**
 * BashToolbox Registry
 *
 * Central registry for all agentic tools. Enforces schema validation
 * and provides metadata for AI SDKs. Delegates execution to the executor
 * module and schema conversion to the schema-conversion module.
 */
import type { Bash } from "../../Bash.js";
import { type ToolboxTool } from "../Tool.js";
import { type JsonSchema, type JsonSchemaOutput } from "./schema-conversion.js";
/**
 * Shape of an MCP tool descriptor from an MCP connection.
 */
interface McpToolDescriptor {
    name: string;
    description?: string;
    inputSchema?: JsonSchema;
}
/**
 * Represents a single agentic tool entry returned by getAgenticTools.
 */
interface AgenticToolEntry {
    description: string;
    inputSchema: JsonSchemaOutput;
    effort?: "low" | "medium" | "high";
    composeHooks?: {
        before?: string[];
        after?: string[];
        parallel?: string[];
    };
    execute: (args: Record<string, unknown>) => Promise<unknown>;
}
/**
 * BashToolbox - Central registry for all agentic tools.
 *
 * Enforces schema validation and provides metadata for AI SDKs.
 */
export declare class BashToolbox {
    private tools;
    constructor();
    private registerCoreTools;
    registerTool(tool: ToolboxTool): void;
    getTools(): ToolboxTool[];
    /**
     * Performs a semantic search over the registered tools using ToolSearchEngine.
     */
    searchTools(query: string, limit?: number): Promise<ToolboxTool[]>;
    getTool(name: string): ToolboxTool | undefined;
    registerMcpTools(connectionId: string, tools: McpToolDescriptor[]): void;
    getAgenticTools(bash: Bash): Record<string, AgenticToolEntry>;
    unregisterTool(name: string): void;
    /**
     * Orchestrates the tool execution lifecycle:
     * validation -> permissions -> execution.
     */
    callTool(bash: Bash, toolName: string, args: Record<string, unknown>): Promise<unknown>;
}
export {};
