import type { InfiniteHitsConnectorParams, InfiniteHitsRenderState, InfiniteHitsCache, InfiniteHitsWidgetDescription } from '../../connectors/infinite-hits/connectInfiniteHits'; import type { WidgetFactory, Template, TemplateWithBindEvent, BaseHit, Hit } from '../../types'; import type { SearchResults } from 'algoliasearch-helper'; export type InfiniteHitsCSSClasses = Partial<{ /** * The root element of the widget. */ root: string | string[]; /** * The root container without results. */ emptyRoot: string | string[]; /** * The list of results. */ list: string | string[]; /** * The list item. */ item: string | string[]; /** * The “Show previous” button. */ loadPrevious: string | string[]; /** * The disabled “Show previous” button. */ disabledLoadPrevious: string | string[]; /** * The “Show more” button. */ loadMore: string | string[]; /** * The disabled “Show more” button. */ disabledLoadMore: string | string[]; /** * Class names to apply to the banner element */ bannerRoot: string | string[]; /** * Class names to apply to the banner image element */ bannerImage: string | string[]; /** * Class names to apply to the banner link element */ bannerLink: string | string[]; }>; export type InfiniteHitsTemplates = BaseHit> = Partial<{ /** * The template to use when there are no results. */ empty: Template>; /** * The template to use for the “Show previous” label. */ showPreviousText: Template; /** * The template to use for the “Show more” label. */ showMoreText: Template; /** * The template to use for each result. */ item: TemplateWithBindEvent & { /** @deprecated the index in the hits array, use __position instead, which is the absolute position */ __hitIndex: number; }>; /** * Template to use for the banner. */ banner: Template<{ banner: Required; className: string; }>; }>; export type InfiniteHitsWidgetParams = BaseHit> = { /** * The CSS Selector or `HTMLElement` to insert the widget into. */ container: string | HTMLElement; /** * The CSS classes to override. */ cssClasses?: InfiniteHitsCSSClasses; /** * The templates to use for the widget. */ templates?: InfiniteHitsTemplates; /** * Reads and writes hits from/to cache. * When user comes back to the search page after leaving for product page, * this helps restore InfiniteHits and its scroll position. */ cache?: InfiniteHitsCache; }; export type InfiniteHitsWidget = WidgetFactory; declare const _default: = BaseHit>(widgetParams: InfiniteHitsWidgetParams & InfiniteHitsConnectorParams) => { $$widgetType: "ais.infiniteHits"; $$type: "ais.infiniteHits"; init(initOptions: import("../../types").InitOptions): void; render(renderOptions: import("../../types").RenderOptions): void; getRenderState(renderState: { answers?: import("../../types").WidgetRenderState | undefined; autocomplete?: import("../../types").WidgetRenderState | undefined; breadcrumb?: { [rootAttribute: string]: import("../../types").WidgetRenderState; } | undefined; chat?: import("../../types").WidgetRenderState>, import("../../connectors/chat/connectChat").ChatConnectorParams>> | undefined; clearRefinements?: import("../../types").WidgetRenderState | undefined; compare?: import("../../types").WidgetRenderState | undefined; configure?: import("../../types").WidgetRenderState | undefined; currentRefinements?: import("../../types").WidgetRenderState | undefined; feeds?: import("../../connectors/feeds/connectFeeds").FeedsRenderState | undefined; geoSearch?: import("../../types").WidgetRenderState, import("../../connectors/geo-search/connectGeoSearch").GeoSearchConnectorParams> | undefined; hierarchicalMenu?: { [rootAttribute: string]: import("../../types").WidgetRenderState; } | undefined; hits?: import("../../types").WidgetRenderState, import("../../connectors/hits/connectHits").HitsConnectorParams> | undefined; hitsPerPage?: import("../../types").WidgetRenderState | undefined; infiniteHits?: import("../../types").WidgetRenderState, InfiniteHitsConnectorParams> | undefined; menu?: { [attribute: string]: import("../../types").WidgetRenderState; } | undefined; numericMenu?: { [attribute: string]: import("../../types").WidgetRenderState; } | undefined; pagination?: import("../../types").WidgetRenderState | undefined; poweredBy?: import("../../types").WidgetRenderState | undefined; queryRules?: import("../../types").WidgetRenderState | undefined; range?: { [attribute: string]: import("../../types").WidgetRenderState; } | undefined; ratingMenu?: { [attribute: string]: import("../../types").WidgetRenderState; } | undefined; refinementList?: { [attribute: string]: import("../../types").WidgetRenderState; } | undefined; relevantSort?: import("../../types").WidgetRenderState | undefined; searchBox?: import("../../types").WidgetRenderState | undefined; sortBy?: import("../../types").WidgetRenderState | undefined; stats?: import("../../types").WidgetRenderState | undefined; toggleRefinement?: { [attribute: string]: import("../../types").WidgetRenderState; } | undefined; voiceSearch?: import("../../types").WidgetRenderState | undefined; analytics?: import("../../types").WidgetRenderState, import("../analytics/analytics").AnalyticsWidgetParams> | undefined; places?: import("../../types").WidgetRenderState, import("../places/places").PlacesWidgetParams> | undefined; }, renderOptions: import("../../types").InitOptions | import("../../types").RenderOptions): import("../../types").IndexRenderState & InfiniteHitsWidgetDescription["indexRenderState"]; getWidgetRenderState({ results, helper, parent, state: existingState, instantSearchInstance, }: import("../../types").InitOptions | import("../../types").RenderOptions): { hits: Hit[]; items: Hit[]; currentPageHits: Hit[]; sendEvent: import("../../lib/utils").SendEventForHits; bindEvent: import("../../lib/utils").BindEventForHits; banner: import("algoliasearch-helper").Banner | undefined; results: SearchResults | undefined; showPrevious: () => void; showMore: () => void; isFirstPage: boolean; isLastPage: boolean; widgetParams: Partial> & InfiniteHitsConnectorParams; }; dispose({ state }: import("../../types").DisposeOptions): import("algoliasearch-helper").SearchParameters; getWidgetUiState(uiState: { page?: number | undefined; query?: string | undefined; configure?: import("algoliasearch-helper").PlainSearchParameters | undefined; geoSearch?: { boundingBox: string; } | undefined; hierarchicalMenu?: { [rootAttribute: string]: string[]; } | undefined; hitsPerPage?: number | undefined; menu?: { [attribute: string]: string; } | undefined; numericMenu?: { [attribute: string]: string; } | undefined; range?: { [attribute: string]: string; } | undefined; ratingMenu?: { [attribute: string]: number | undefined; } | undefined; refinementList?: { [attribute: string]: string[]; } | undefined; relevantSort?: number | undefined; sortBy?: string | undefined; toggle?: { [attribute: string]: boolean; } | undefined; places?: { query: string; position: string; } | undefined; }, { searchParameters }: { searchParameters: import("algoliasearch-helper").SearchParameters; helper: import("algoliasearch-helper").AlgoliaSearchHelper; }): { page?: number | undefined; query?: string | undefined; configure?: import("algoliasearch-helper").PlainSearchParameters | undefined; geoSearch?: { boundingBox: string; } | undefined; hierarchicalMenu?: { [rootAttribute: string]: string[]; } | undefined; hitsPerPage?: number | undefined; menu?: { [attribute: string]: string; } | undefined; numericMenu?: { [attribute: string]: string; } | undefined; range?: { [attribute: string]: string; } | undefined; ratingMenu?: { [attribute: string]: number | undefined; } | undefined; refinementList?: { [attribute: string]: string[]; } | undefined; relevantSort?: number | undefined; sortBy?: string | undefined; toggle?: { [attribute: string]: boolean; } | undefined; places?: { query: string; position: string; } | undefined; }; getWidgetSearchParameters(searchParameters: import("algoliasearch-helper").SearchParameters, { uiState }: { uiState: { page?: number | undefined; query?: string | undefined; configure?: import("algoliasearch-helper").PlainSearchParameters | undefined; geoSearch?: { boundingBox: string; } | undefined; hierarchicalMenu?: { [rootAttribute: string]: string[]; } | undefined; hitsPerPage?: number | undefined; menu?: { [attribute: string]: string; } | undefined; numericMenu?: { [attribute: string]: string; } | undefined; range?: { [attribute: string]: string; } | undefined; ratingMenu?: { [attribute: string]: number | undefined; } | undefined; refinementList?: { [attribute: string]: string[]; } | undefined; relevantSort?: number | undefined; sortBy?: string | undefined; toggle?: { [attribute: string]: boolean; } | undefined; places?: { query: string; position: string; } | undefined; }; }): import("algoliasearch-helper").SearchParameters; }; export default _default;