import { BaseTool } from '../base.js';
import { ToolExecutionContext } from '../types.js';
interface SearchOptions {
    query: string;
    path?: string;
    type?: 'content' | 'filename' | 'both';
    filePattern?: string;
    excludePattern?: string;
    caseSensitive?: boolean;
    maxResults?: number;
    includeHidden?: boolean;
    searchOutsideRepo?: boolean;
    maxDepth?: number;
    fileType?: string;
    beforeDate?: string;
    afterDate?: string;
    minSize?: string;
    maxSize?: string;
}
export declare class SearchTool extends BaseTool {
    name: string;
    displayName: string;
    description: string;
    category: "file";
    icon: string;
    parameters: ({
        name: string;
        type: "string";
        description: string;
        required: boolean;
        default?: undefined;
        enum?: undefined;
    } | {
        name: string;
        type: "string";
        description: string;
        required: boolean;
        default: string;
        enum?: undefined;
    } | {
        name: string;
        type: "string";
        description: string;
        required: boolean;
        default: string;
        enum: string[];
    } | {
        name: string;
        type: "boolean";
        description: string;
        required: boolean;
        default: boolean;
        enum?: undefined;
    } | {
        name: string;
        type: "number";
        description: string;
        required: boolean;
        default: number;
        enum?: undefined;
    } | {
        name: string;
        type: "number";
        description: string;
        required: boolean;
        default?: undefined;
        enum?: undefined;
    })[];
    permissions: {
        fileSystem: "read";
    };
    ui: {
        showProgress: boolean;
        collapsible: boolean;
        dangerous: boolean;
    };
    protected run(params: SearchOptions, context: ToolExecutionContext): Promise<any>;
    private searchContent;
    private buildRipgrepCommand;
    private escapeShellArg;
    private searchContentWithGrep;
    private searchFilenames;
    private createPreview;
    private formatResults;
}
export {};
//# sourceMappingURL=search.d.ts.map