/** * MiniSearch-based Text Store * * Provides full-text search using MiniSearch with: * - BM25 scoring algorithm * - CamelCase-aware tokenization for code * - Synonym expansion for better query matching * - Persistence to SQLite * - Per-project document isolation * * Zero external dependencies beyond MiniSearch - works immediately. */ import { ITextStore, TextDocument, TextSearchResult, Synonym } from '../interfaces'; export declare class MiniSearchTextStore implements ITextStore { private dataDir; private flushIntervalSeconds; private db; private miniSearch; private synonymMap; private isDirty; private flushTimer; private documentMap; private isLoaded; private loadPromise; constructor(dataDir: string, flushIntervalSeconds?: number); /** * Ensure documents are loaded before search operations * Uses lazy loading to avoid blocking MCP server startup */ private ensureLoaded; /** * Custom tokenizer that handles CamelCase, snake_case, and kebab-case * for better code search */ private tokenize; private createMiniSearch; private initializeSchema; private loadFromDatabase; private startFlushTimer; index(doc: TextDocument): Promise; indexMany(docs: TextDocument[]): Promise; search(query: string, projectId: string, limit?: number): Promise; searchWithSynonyms(query: string, projectId: string, limit?: number): Promise; private expandQueryWithSynonyms; remove(id: string): Promise; removeByProject(projectId: string): Promise; addSynonym(term: string, synonyms: string[], projectId?: string): Promise; removeSynonym(term: string, projectId?: string): Promise; getSynonyms(projectId?: string): Promise; clearSynonyms(projectId?: string): Promise; count(projectId: string): Promise; flush(): Promise; close(): Promise; /** * Get default code-related synonyms for bootstrapping */ static getDefaultCodeSynonyms(): Array<{ term: string; synonyms: string[]; }>; } //# sourceMappingURL=minisearch-text-store.d.ts.map