/**
 * Search Tool Adapters
 *
 * ITool-compliant adapters for SearchTool operations.
 * These adapters wrap the existing SearchTool methods to conform
 * to the formal ITool interface for use with the FormalToolRegistry.
 */
import type { ToolResult } from '../../types/index.js';
import type { ITool, ToolSchema, IToolMetadata, IValidationResult } from './types.js';
/**
 * Reset the shared SearchTool instance (for testing)
 */
export declare function resetSearchInstance(): void;
/**
 * UnifiedSearchTool - ITool adapter for unified text and file search
 */
export declare class UnifiedSearchTool implements ITool {
    readonly name = "search";
    readonly description = "Search for text content or find files using pattern matching";
    execute(input: Record<string, unknown>): Promise<ToolResult>;
    getSchema(): ToolSchema;
    validate(input: unknown): IValidationResult;
    getMetadata(): IToolMetadata;
    isAvailable(): boolean;
}
/**
 * FindSymbolsTool - ITool adapter for finding code symbols
 */
export declare class FindSymbolsTool implements ITool {
    readonly name = "find_symbols";
    readonly description = "Find functions, classes, interfaces, and other code symbols";
    execute(input: Record<string, unknown>): Promise<ToolResult>;
    getSchema(): ToolSchema;
    validate(input: unknown): IValidationResult;
    getMetadata(): IToolMetadata;
    isAvailable(): boolean;
}
/**
 * FindReferencesTool - ITool adapter for finding symbol references
 */
export declare class FindReferencesTool implements ITool {
    readonly name = "find_references";
    readonly description = "Find all references to a symbol in the codebase";
    execute(input: Record<string, unknown>): Promise<ToolResult>;
    getSchema(): ToolSchema;
    validate(input: unknown): IValidationResult;
    getMetadata(): IToolMetadata;
    isAvailable(): boolean;
}
/**
 * FindDefinitionTool - ITool adapter for finding symbol definitions
 */
export declare class FindDefinitionTool implements ITool {
    readonly name = "find_definition";
    readonly description = "Find the definition of a symbol";
    execute(input: Record<string, unknown>): Promise<ToolResult>;
    getSchema(): ToolSchema;
    validate(input: unknown): IValidationResult;
    getMetadata(): IToolMetadata;
    isAvailable(): boolean;
}
/**
 * SearchMultipleTool - ITool adapter for multi-pattern search
 */
export declare class SearchMultipleTool implements ITool {
    readonly name = "search_multi";
    readonly description = "Search for multiple patterns with OR/AND logic";
    execute(input: Record<string, unknown>): Promise<ToolResult>;
    getSchema(): ToolSchema;
    validate(input: unknown): IValidationResult;
    getMetadata(): IToolMetadata;
    isAvailable(): boolean;
}
/**
 * Create all search tool instances
 */
export declare function createSearchTools(): ITool[];
