import { ConstructorClientOptions, Facet, Feature, FilterExpression, FmtOptions, Group, NetworkParameters, RequestFeature, RequestFeatureVariant, ResultSources, SortOption, UserParameters, VariationsMap, } from '.'; export default Search; export interface SearchParameters { page?: number; offset?: number; resultsPerPage?: number; filters?: Record; sortBy?: string; sortOrder?: string; section?: string; fmtOptions?: FmtOptions; preFilterExpression?: FilterExpression; hiddenFields?: string[]; hiddenFacets?: string[]; variationsMap?: VariationsMap; qsParam?: Record; } declare class Search { constructor(options: ConstructorClientOptions); options: ConstructorClientOptions; getSearchResults( query: string, parameters?: SearchParameters, userParameters?: UserParameters, networkParameters?: NetworkParameters ): Promise; getVoiceSearchResults( query: string, parameters?: Omit, userParameters?: UserParameters, networkParameters?: NetworkParameters ): Promise; } /* search results returned from server */ export interface SearchResponse { request: Partial; response: Partial; result_id: string; } export interface Response extends Record { result_sources: Partial; facets: Partial[]; groups: Partial[]; results: Partial[]; sort_options: Partial[]; refined_content: Record[]; total_num_results: number; features: Partial[]; } export interface SearchRequestType extends Record { page: number; num_results_per_page: number; section: string; blacklist_rules: boolean; term: string; fmt_options: FmtOptions; original_query?: string; sort_by: string; sort_order: string; features: Partial; feature_variants: Partial; searchandized_items: Record; variations_map?: VariationsMap; pre_filter_expression?: FilterExpression; } export interface SearchResultType extends Record { matched_terms: string[]; data: { id: string; [key: string]: any; }; value: string; is_slotted: false; labels: Record; variations: Record[]; variations_map: Record | Record[]; } export interface Redirect extends Record { redirect: { data: { match_id: number; rule_id: number; url: string; [key: string]: any; }; matched_terms: string[]; matched_user_segments: string[]; }; }