import { Tool } from '../core/types'; /** * Registry to manage available tools for agents */ export declare class ToolRegistry { private static instance; private tools; private logger; /** * Private constructor (use getInstance() instead) */ private constructor(); /** * Gets the singleton instance of the tool registry * * @returns The tool registry instance */ static getInstance(): ToolRegistry; /** * Registers a tool with the registry * * @param tool - The tool to register * @returns Boolean indicating if registration was successful */ registerTool(tool: Tool): boolean; /** * Gets a tool by name * * @param name - The name of the tool to get * @returns The tool, or undefined if not found */ getTool(name: string): Tool | undefined; /** * Gets all registered tools * * @returns Array of all registered tools */ getAllTools(): Tool[]; /** * Gets tools by category (from tool metadata) * * @param category - The category to filter by * @returns Array of tools in the specified category */ getToolsByCategory(category: string): Tool[]; /** * Removes a tool from the registry * * @param name - The name of the tool to remove * @returns Boolean indicating if removal was successful */ unregisterTool(name: string): boolean; /** * Clears all registered tools */ clearTools(): void; }