import type { ODataSelect, ODataSelectResult } from '../lib/odata'; import type { KeyFieldDefinition } from './schema'; import type { SuggestResult } from './searchBackend'; import { SearchBackend } from './searchBackend'; export interface SuggestRequest | string> { filter?: string; fuzzy?: boolean; highlightPreTag?: string; highlightPostTag?: string; minimumCoverage?: number; orderBy?: string; search: string; searchFields?: string; select?: Keys[]; suggesterName: string; top?: number; } export interface SuggestDocumentsResult { '@search.coverage'?: number; value: SuggestResult[]; } export interface Suggester { name: string; searchMode: 'analyzingInfixMatching'; fields: string[]; } export declare class SuggestEngine { private backend; private keyFieldProvider; private suggesterProvider; constructor(backend: SearchBackend, keyFieldProvider: () => KeyFieldDefinition, suggesterProvider: (name: string) => Suggester); suggest>(request: SuggestRequest): SuggestDocumentsResult>; }