import type { LLMToolSchema, ToolAvailability, ToolContext, ToolDefinition, ToolExecutionResult, ToolRegistryConfig } from '../../types/tool/index.js';
import { ManagedRegistry } from '../ManagedRegistry.js';
export type { ToolExecutionResult };
export declare class ToolRegistry extends ManagedRegistry<ToolDefinition> {
    private availability;
    private tierConfig?;
    constructor(config?: ToolRegistryConfig);
    register(id: string, tool: ToolDefinition): void;
    register(tool: ToolDefinition, initialState?: ToolAvailability): void;
    register(tools: ToolDefinition[], initialState?: ToolAvailability): void;
    private registerOne;
    unregister(id: string): boolean;
    clear(): void;
    activate(names: string[]): void;
    defer(names: string[]): void;
    suspendAll(): void;
    hasSuspended(): boolean;
    getAvailability(name: string): ToolAvailability;
    searchDeferred(query: string): ToolDefinition[];
    assignTiers(mapping: Record<string, string>): void;
    toTierGuidance(): string | null;
    listNames(): string[];
    toPromptSection(toolNames?: string[]): string;
    toLLMTools(toolNames?: string[]): LLMToolSchema[];
    getCallableTools(toolNames?: string[]): ToolDefinition[];
    execute(toolName: string, rawInput: unknown, context: ToolContext): Promise<ToolExecutionResult>;
    private getByAvailability;
}
//# sourceMappingURL=execute.d.ts.map