import type { Tool } from '../tools/tool.js'; /** * Registry for managing Tool instances with name-based CRUDL operations. */ export declare class ToolRegistry { private _tools; /** * Creates a new ToolRegistry, optionally pre-populated with tools. * * @param tools - Optional initial tools to register */ constructor(tools?: Tool[]); /** * Registers one or more tools. * * @param tool - A single tool or array of tools to register * @throws ToolValidationError If a tool's properties are invalid or its name is already registered */ add(tool: Tool | Tool[]): void; /** * Registers one or more tools, replacing any existing tools with the same name. * * @param tools - Array of tools to register * @throws ToolValidationError If a tool's properties are invalid */ addOrReplace(newTools: Tool[]): void; /** * Retrieves a tool by name. * * @param name - The name of the tool to retrieve * @returns The tool if found, otherwise undefined */ get(name: string): Tool | undefined; /** * Resolves a tool name using normalization strategies and returns the tool. * * Resolution order: * 1. Exact match * 2. Underscore-to-hyphen substitution (e.g. `my_tool` → `my-tool`) * 3. Case-insensitive match * * @param name - The name to look up * @returns The resolved tool * @throws ToolNotFoundError if no tool with the given name exists */ resolve(name: string): Tool; /** * Removes a tool by name. No-op if the tool does not exist. * * @param name - The name of the tool to remove */ remove(name: string): void; /** * Removes all registered tools. */ clear(): void; /** * Returns all registered tools. * * @returns Array of all registered tools */ list(): Tool[]; private _validateProperties; private _checkNormalizedConflict; } //# sourceMappingURL=tool-registry.d.ts.map