import { Config } from "../config/index.js"; import { NoteManager } from "../notes/manager.js"; import { Note } from "../notes/types.js"; export interface IndexedNote { id: string; file_path: string; date: string; title: string; category: string; tags: string; mentions: string; content: string; created_at: string; updated_at: string; indexed_at: string; } export interface SearchResult { id: string; filePath: string; date: string; title: string; category: string; tags: string[]; mentions: string[]; snippet: string; rank: number; } export declare class Indexer { private db; private config; private dbPath; private miniSearch; private noteContents; private constructor(); static create(config: Config): Promise; private loadMiniSearchFromDb; private initializeSchema; private save; indexNote(note: Note): void; private indexEntities; removeNote(noteId: string): void; private extractSnippet; search(query: string, limit?: number): SearchResult[]; searchByPerson(name: string, limit?: number): SearchResult[]; searchByDateRange(startDate: string, endDate: string, limit?: number): SearchResult[]; searchByCategory(category: string, limit?: number): SearchResult[]; searchByTag(tag: string, limit?: number): SearchResult[]; getEntities(type?: string): Array<{ name: string; type: string; count: number; }>; rebuildIndex(noteManager: NoteManager): Promise; regenerateSnippets(results: SearchResult[], searchTerm: string): SearchResult[]; getStats(): { noteCount: number; entityCount: number; lastIndexed: string | null; }; close(): void; } export declare function initializeDatabase(config: Config): Promise; //# sourceMappingURL=indexer.d.ts.map