import { SearchableDocument, SearchResult, SearchOptions } from '../types'; export interface SearchEngineAdapter { initialize(options?: SearchEngineOptions): Promise; addDocuments(documents: SearchableDocument[]): Promise; removeDocuments(ids: string[]): Promise; search(query: string, options?: SearchOptions): Promise; exportIndex(): Promise; importIndex(data: SerializedIndexData): Promise; clear(): Promise; startNewIndexingSession?(): void; getAllDocuments?(): Promise; } export interface SearchEngineConfig { storage: SearchStorageAdapter; markdownProvider: import('../MarkdownFileProvider').MarkdownFileProvider; searchEngine?: SearchEngineAdapter; } export type SearchEngineOptionValue = string | number | boolean | object | undefined; export type SerializedIndexData = unknown; export type IndexStatsData = unknown; export interface SearchEngineOptions { [key: string]: SearchEngineOptionValue; } export interface SearchIndexData { version: string; timestamp: string; engine: string; index: Record; documents: Array<[string, SearchableDocument]>; } export interface SearchStorageAdapter { saveIndex(key: string, data: SerializedIndexData): Promise; loadIndex(key: string): Promise; deleteIndex(key: string): Promise; hasIndex(key: string): Promise; getIndexMetadata(key: string): Promise; } export interface IndexingOptions { indexChunks?: boolean; fileOptions?: import('../MarkdownFileProvider').FindOptions; batchSize?: number; clearBefore?: boolean; onProgress?: (progress: IndexingProgress) => void; } export type IndexingPhase = 'discovering' | 'parsing' | 'indexing' | 'persisting' | 'complete'; export interface IndexingProgress { phase: IndexingPhase; currentFile?: string; filesProcessed: number; totalFiles: number; documentsIndexed: number; percentage: number; foundFiles?: { list: string[]; total: number; hasMore: boolean; }; } export interface IndexMetadata { version: string; createdAt: string; updatedAt: string; stats: SearchIndexStats; } export interface SearchIndexStats { totalFiles: number; totalSections?: number; totalDocuments?: number; totalSize?: string; indexedAt: string; totalSlides?: number; } export interface IndexResult { filesIndexed: number; sectionsIndexed?: number; documentsIndexed?: number; errors?: IndexError[]; duration: number; slidesIndexed?: number; } export interface IndexError { file: string; error: string; stack?: string; } //# sourceMappingURL=types.d.ts.map