/**
 * Tool registry and compatibility facade.
 *
 * The registry is the single source of truth for locally executable tools.
 * New runtime code should depend on a ToolCatalog/ToolRegistry instance; the
 * module-level functions below remain as a compatibility facade for older
 * bootstrap paths while those call sites are migrated.
 */
import type { PortableTool } from "./portable-tool.js";
import type { ToolDefinition } from "../protocol/wire/index.js";
import { AGENT_DISALLOWED_TOOLS, CUSTOM_AGENT_DISALLOWED_TOOLS, filterToolsForAgent } from "./tool-access.js";
export { AGENT_DISALLOWED_TOOLS, CUSTOM_AGENT_DISALLOWED_TOOLS, filterToolsForAgent };
export declare class ToolRegistry {
    private readonly toolPool;
    private readonly activatedTools;
    setTools(tools: PortableTool[]): void;
    addTool(tool: PortableTool<any>): void;
    addTools(tools: PortableTool<any>[]): void;
    removeTool(name: string): boolean;
    findTool(name: string): PortableTool | undefined;
    hasTool(name: string): boolean;
    getToolNames(): string[];
    getToolCount(): number;
    executeTool(name: string, toolCallId: string, args: Record<string, unknown>, signal?: AbortSignal): Promise<import("./portable-tool.js").PortableToolResult>;
    getTools(): PortableTool[];
    activateTool(name: string): boolean;
    isToolActivated(name: string): boolean;
    clearActivatedTools(): void;
    getToolManifest(includeDeferred?: boolean): ToolDefinition[];
}
export declare function getDefaultToolRegistry(): ToolRegistry;
export declare function setToolPool(tools: PortableTool[]): void;
export declare function addTool(tool: PortableTool<any>): void;
export declare function addTools(tools: PortableTool<any>[]): void;
export declare function removeTool(name: string): boolean;
export declare function findTool(name: string): PortableTool | undefined;
export declare function hasTool(name: string): boolean;
export declare function getToolNames(): string[];
export declare function getToolCount(): number;
export declare function executeTool(name: string, toolCallId: string, args: Record<string, unknown>, signal?: AbortSignal): Promise<import("./portable-tool.js").PortableToolResult>;
export declare function getTools(): PortableTool[];
export declare function activateTool(name: string): boolean;
export declare function isToolActivated(name: string): boolean;
export declare function clearActivatedTools(): void;
export declare function getToolManifest(includeDeferred?: boolean): ToolDefinition[];
