import { PostgreSQLAdapter } from '../PostgreSQLAdapter'; /** * Search result with similarity scores */ export interface SearchResult { id: string; title: string; excerpt?: string; body?: string; titleSimilarity: number; bodySimilarity: number; totalSimilarity: number; [key: string]: unknown; } /** * Search options */ export interface SearchOptions { limit?: number; offset?: number; minSimilarity?: number; fields?: string[]; orderBy?: 'relevance' | 'date' | 'title'; } /** * PostgreSQL full-text search with pg_trgm * Enables fuzzy matching and typo-tolerance */ export declare class FullTextSearchManager { private adapter; private logger?; constructor(adapter: PostgreSQLAdapter); /** * Search content with full-text search and fuzzy matching */ searchContent(query: string, options?: SearchOptions): Promise; /** * Search using PostgreSQL full-text search vectors (ts_vector) */ searchWithTsVector(query: string, options?: SearchOptions): Promise; /** * Combined search using both pg_trgm fuzzy matching and ts_vector */ searchCombined(query: string, options?: SearchOptions): Promise; /** * Create full-text search indexes */ createIndexes(): Promise; /** * Drop full-text search indexes */ dropIndexes(): Promise; /** * Get search statistics */ getSearchStats(): Promise<{ indexesExist: boolean; extensionEnabled: boolean; searchVectorExists: boolean; }>; }