import { Tool, ToolRegistry, ToolMetadata } from './types';
/**
 * Standard implementation of the tool registry
 */
export declare class StandardToolRegistry implements ToolRegistry {
    private tools;
    private metadata;
    register(tool: Tool): void;
    unregister(name: string): void;
    get(name: string): Tool | undefined;
    getAll(): Tool[];
    getByCategory(category: string): Tool[];
    has(name: string): boolean;
    /**
     * Get metadata for a tool
     */
    getMetadata(name: string): ToolMetadata | undefined;
    /**
     * Get all tool metadata
     */
    getAllMetadata(): ToolMetadata[];
    /**
     * Register a tool with additional metadata
     */
    registerWithMetadata(tool: Tool, metadata: Partial<ToolMetadata>): void;
    /**
     * Create a StandardToolRegistry from an object of tools
     */
    static fromTools(toolsObj: Record<string, Tool>): StandardToolRegistry;
    /**
     * Get tools catalog as string for LLM prompts
     */
    getCatalog(): string;
    /**
     * Clear all registered tools
     */
    clear(): void;
    /**
     * Get tool count
     */
    size(): number;
}
