import { CategoryTool } from '../types/common.js';
/**
 * Tool Registry manages the registration and querying of all available tools.
 * It provides a central place to register, filter, and retrieve tools by various criteria.
 */
export declare class ToolRegistry {
    private tools;
    private cachedEnabledTools;
    private lastCacheTime;
    private readonly CACHE_TTL;
    /**
     * Register a single tool in the registry
     */
    register(tool: CategoryTool): void;
    /**
     * Register multiple tools at once
     */
    registerMany(tools: CategoryTool[]): void;
    /**
     * Get a tool by its name
     */
    getByName(name: string): CategoryTool | undefined;
    /**
     * Get all tools that belong to a specific category
     */
    getByCategory(category: string): CategoryTool[];
    /**
     * Get all registered tools
     */
    getAllTools(): CategoryTool[];
    /**
     * Get all tools that are enabled based on the license and configuration
     * This method now returns a subset based on the current license
     */
    getEnabledToolsAsync(): Promise<CategoryTool[]>;
    /**
     * Get enabled tools (synchronous version, falls back to configuration)
     * This is used for backward compatibility
     */
    getEnabledTools(): CategoryTool[];
    /**
     * Check if a tool with the given name exists in the registry
     */
    hasToolWithName(name: string): boolean;
    /**
     * Check if a tool belongs to the specified category
     */
    isToolInCategory(name: string, category: string): boolean;
}
export declare const toolRegistry: ToolRegistry;
