import { type ToolDefinition } from '@opencode-ai/plugin'; export declare function tokenize(text: string): string[]; export interface BM25Index { docCount: number; avgDocLength: number; terms: Map>; docFreqs: Map; docLengths: Map; docTfs: Map>; docKeys: string[]; } export interface BM25Options { k1?: number; b?: number; limit?: number; } export declare function buildIndex(files: string[]): BM25Index; export declare function bm25Search(query: string, index: BM25Index, options?: BM25Options): Array<{ file: string; line: number; score: number; snippet: string; }>; export interface SearchResult { file: string; line: number; column: number; snippet: string; score: number; } export declare function astGrepSearch(pattern: string, lang: string, searchPath: string): Promise; export declare function doraSymbolSearch(name: string): Promise<{ success: boolean; results: SearchResult[]; hint?: string; }>; export declare function buildSearchIndex(searchPath?: string): { filesIndexed: number; termCount: number; }; export declare function getIndexStatus(): { filesIndexed: number; termCount: number; indexedPath: string | null; }; export declare function fuseResults(bm25Results: Array<{ file: string; line: number; score: number; snippet: string; }>, astResults: Array<{ file: string; line: number; score: number; snippet: string; }>, symbolResults: Array<{ file: string; line: number; score: number; snippet: string; }>): Array<{ file: string; line: number; score: number; snippet: string; sources: string[]; }>; export declare function runCodeSearch(query: string, searchPath?: string, limit?: number): Promise<{ success: boolean; results: Array<{ file: string; line: number; score: number; snippet: string; sources: string[]; }>; meta: { bm25Count: number; astCount: number; symbolCount: number; totalFused: number; }; }>; export declare const codeSearchTool: ToolDefinition; export declare const codeSearchIndexTool: ToolDefinition; export declare const codeSearchStatusTool: ToolDefinition;