/** * SearchEngine - Main search engine implementation for markdown documents */ import { SearchStorageAdapter, SearchEngineAdapter } from './adapters'; import { IndexingOptions, IndexResult, SearchEngineConfig, SearchIndexStats } from './adapters/types'; import { type SearchableDocument, type SearchResult, type SearchOptions } from './types'; export declare class SearchEngine { private indexer; private searchEngine; private storage; private markdownProvider; private indexKey; constructor(config: SearchEngineConfig, indexKey?: string); /** * Initialize the search engine, loading any existing index */ initialize(): Promise; /** * Index all markdown files in the workspace */ indexFiles(options?: IndexingOptions): Promise; /** * Search the index */ search(query: string, options?: SearchOptions): Promise; /** * Get index statistics */ getStats(): Promise; /** * Check if index exists */ hasIndex(): Promise; /** * Clear the index */ clearIndex(): Promise; /** * Update specific files in the index */ updateFiles(filePaths: string[], options?: IndexingOptions): Promise; /** * Index a single document with custom metadata */ indexDocument(filePath: string, metadata?: Record): Promise; /** * Index multiple documents with metadata */ indexDocumentsWithMetadata(items: Array<{ path: string; metadata?: Record; }>): Promise; /** * Update an existing document */ updateDocument(filePath: string, metadata?: Record): Promise; /** * Remove a single document from the index */ removeDocument(filePath: string): Promise; /** * Remove all documents matching metadata criteria */ removeDocumentsByMetadata(query: Record): Promise; /** * Check if document exists in index */ hasDocument(filePath: string): Promise; /** * Helper function to check if metadata matches query */ private matchesMetadata; /** * Index documents directly (for non-file-based content like notes) */ indexDocuments(documents: SearchableDocument[], options?: IndexingOptions): Promise; /** * Save the current index to storage */ saveIndex(): Promise; /** * Get direct access to the search engine adapter (use with caution) */ getSearchAdapter(): SearchEngineAdapter; /** * Get direct access to the storage adapter (use with caution) */ getStorageAdapter(): SearchStorageAdapter; } //# sourceMappingURL=SearchEngine.d.ts.map