import type { AsyncThunkAction } from '@reduxjs/toolkit'; import type { FacetSearchAPIClient } from '../../../../api/search/search-api-client.js'; import type { AsyncThunkOptions } from '../../../../app/async-thunk-options.js'; import type { CoreEngine, CoreEngineNext } from '../../../../app/engine.js'; import type { ClientThunkExtraArguments, ThunkExtraArguments } from '../../../../app/thunk-extra-arguments.js'; import type { CategoryFacetSearchState } from '../../../../features/facets/facet-search-set/category/category-facet-search-set-state.js'; import type { FacetSearchOptions } from '../../../../features/facets/facet-search-set/facet-search-request-options.js'; import type { SpecificFacetSearchState } from '../../../../features/facets/facet-search-set/specific/specific-facet-search-set-state.js'; import type { CategoryFacetSearchSection, FacetSearchSection } from '../../../../state/state-sections.js'; type FacetSearchState = SpecificFacetSearchState | CategoryFacetSearchState; export interface GenericFacetSearchProps { options: FacetSearchOptions; getFacetSearch: () => T; isForFieldSuggestions: boolean; executeFacetSearchActionCreator: (facetId: string) => AsyncThunkAction>; executeFieldSuggestActionCreator: (facetId: string) => AsyncThunkAction>; } export type GenericFacetSearch = ReturnType; export declare function buildGenericFacetSearch(engine: CoreEngine> | CoreEngineNext>, props: GenericFacetSearchProps): { /** Updates the facet search query. * @param text The new query. */ updateText(text: string): void; /** Increases number of results returned by numberOfResults */ showMoreResults(): void; /** Executes a facet search to update the values.*/ search(): void; /** Resets the query and empties the values. */ clear(): void; /** * Updates the facet value captions. * @param captions - A dictionary that maps index field values to facet value display names. */ updateCaptions(captions: Record): void; readonly state: { values: T["response"]["values"]; isLoading: boolean; query: string; moreValuesAvailable: boolean; } | { values: T["response"]["values"]; isLoading: boolean; query: string; moreValuesAvailable: boolean; }; }; export {};