/**
 * Tool Registry - Centralized Tool Search and Management
 * @module core/tools/tool-registry
 * @since v0.35.0
 */
import type { Logger } from '../../utils/logger.js';
import { ToolEventBus } from './tool-event-bus.js';
import type { IndexedTool, LoadedTool, ToolSearchResult, ToolSearchOptions, IndexBuildOptions, IndexBuildResult, ToolType, ToolRegistryStats } from './types/tool-registry-types.js';
export declare class ToolRegistry {
    private projectRoot;
    private registryPath;
    private tools;
    private loadedTools;
    private keywordIndex;
    private searchEngine;
    private indexBuilder;
    private eventBus;
    private logger;
    private initialized;
    private metadata;
    constructor(projectRoot: string, options?: {
        logger?: Logger;
        eventBus?: ToolEventBus;
    });
    private ensureInitialized;
    load(): Promise<void>;
    save(): Promise<void>;
    rebuild(options?: IndexBuildOptions): Promise<IndexBuildResult>;
    search(query: string, options?: ToolSearchOptions): Promise<ToolSearchResult[]>;
    findBestMatch(intent: string): Promise<ToolSearchResult | null>;
    suggest(partialQuery: string, limit?: number): Promise<IndexedTool[]>;
    getTool(id: string): Promise<IndexedTool | null>;
    getLoadedTool(id: string): Promise<LoadedTool | null>;
    listTools(filter?: {
        type?: ToolType;
        plugin?: string;
    }): Promise<IndexedTool[]>;
    hasTool(id: string): Promise<boolean>;
    count(filter?: {
        type?: ToolType;
        plugin?: string;
    }): Promise<number>;
    loadToolContent(id: string): Promise<LoadedTool | null>;
    preloadTools(ids: string[]): Promise<void>;
    unloadTool(id: string): void;
    unloadAll(): void;
    getEventBus(): ToolEventBus;
    recordToolSelection(toolId: string, query: string, score: number, context?: string): void;
    getStats(): Promise<ToolRegistryStats>;
}
//# sourceMappingURL=tool-registry.d.ts.map