import type { ODataSelect } from '../../../lib/odata'; import type { Searchable } from '../../schema'; import { SchemaService } from '../../schema'; import type { DocumentMiddleware } from '../../searchBackend'; import { AnalyzedValueFullText, PlainAnalysisMode, QueryAnalyzisResult, QueryingStrategy, SimpleMatches } from '../../analyzerService'; export declare type AnalyzedSearchable = Searchable & QueryAnalyzisResult; export declare type SuggestionStrategy = (schemaService: SchemaService) => (searchable: AnalyzedSearchable) => (suggestionsAccumulator: unknown[], analyzed: AnalyzedValueFullText, entryMatch: SimpleMatches, entryIndex: number) => void; export declare function useLuceneSearch>(options: { searchFields: string; queryingStrategy: QueryingStrategy; suggestionStrategy: SuggestionStrategy; }): DocumentMiddleware; export declare function createHighlightSuggestionStrategy(options: { highlight: string; preTag: string; postTag: string; maxPadding: number; }): SuggestionStrategy; export declare function createReplacementSuggestionStrategy(options: { highlight: string; preTag: string; postTag: string; }): SuggestionStrategy; export declare function createAutocompleteSuggestionStrategy(options: { search: string; highlight: string; preTag: string; postTag: string; mode: PlainAnalysisMode; }): SuggestionStrategy;