/** * FlexSearch-based Search Bar Component * Fast, memory-efficient full-text search */ export interface SearchDocument { id: string; title: string; content: string; category?: string; tags?: string[]; url?: string; metadata?: Record; } export interface SearchBarOptions { container: HTMLElement | string; documents: SearchDocument[]; placeholder?: string; maxResults?: number; highlightMatches?: boolean; showCategories?: boolean; onSelect?: (doc: SearchDocument) => void; onSearch?: (query: string, results: SearchDocument[]) => void; } export declare class SearchBar { private container; private options; private input; private resultsContainer; private documents; private index; private searchIndex; constructor(options: SearchBarOptions); /** * Initialize FlexSearch index */ private initializeIndex; /** * Perform search using FlexSearch */ private search; /** * Highlight matches in text */ private highlightText; /** * Render the search bar */ private render; /** * Handle search input */ private handleSearch; /** * Render search results */ private renderResults; /** * Create result item element */ private createResultItem; /** * Create content snippet around match */ private createSnippet; /** * Group results by category */ private groupByCategory; /** * Clear search */ clear(): void; /** * Add document to index */ addDocument(doc: SearchDocument): void; /** * Remove document from index */ removeDocument(id: string): void; /** * Update documents */ updateDocuments(documents: SearchDocument[]): void; /** * Destroy component */ destroy(): void; }