import React from "react";
import { TemplatesProps } from "../embeddable/entry";
import { Options, setSortResultsType } from "./SortResults";
import { GenericResultItem, SearchToken, SortField } from "./client";
import { RangeContextProviderProps, setterConnection } from "./useRange";
import { Renderers } from "./useRenderers";
export type ResultsDisplayMode = {
    type: "finite";
} | {
    type: "infinite";
} | {
    type: "virtual";
};
type ResultsProps<E> = {
    searchQuery: Array<SearchToken>;
    onDetail(result: GenericResultItem<E>): void;
    displayMode: ResultsDisplayMode;
    sort: SortField[];
    setSortResult: setSortResultsType;
    setDetailMobile(result: GenericResultItem<E>): void;
    isMobile: boolean;
    overChangeCard?: boolean;
    memoryResults: boolean;
    language: string;
    setSortAfterKey: React.Dispatch<React.SetStateAction<string>>;
    sortAfterKey: string;
    setTotalResult: React.Dispatch<React.SetStateAction<number | null>>;
    numberOfResults: number;
    counterIsVisible?: boolean;
    selectOptions: Options;
    viewButton: boolean;
    templateCustom: TemplatesProps | null;
    NoResultsCustom?: any | undefined | null;
    setViewButtonDetail: React.Dispatch<React.SetStateAction<boolean>>;
    setSelectedSort: setSortResultsType;
    setIdPreview?: React.Dispatch<React.SetStateAction<string>> | undefined | null;
};
declare function Results<E>({ displayMode, onDetail, searchQuery, sort, setSortResult, isMobile, setDetailMobile, overChangeCard, language, setSortAfterKey, sortAfterKey, setTotalResult, numberOfResults, counterIsVisible, selectOptions, setIdPreview, memoryResults, viewButton, NoResultsCustom, setSelectedSort, setViewButtonDetail, templateCustom, }: ResultsProps<E>): import("react/jsx-runtime").JSX.Element | null;
export declare const ResultsMemo: React.MemoExoticComponent<typeof Results>;
type ResulListProps<E> = {
    renderers: Renderers;
    searchQuery: Array<SearchToken>;
    onDetail(result: GenericResultItem<E> | null): void;
    setDetailMobile(result: GenericResultItem<E> | null): void;
    sort: SortField[];
    setSortResult: setSortResultsType;
    isMobile: boolean;
    overChangeCard?: boolean;
    language: string;
    setTotalResult: React.Dispatch<React.SetStateAction<number | null>>;
    numberOfResults: number;
    setIdPreview: React.Dispatch<React.SetStateAction<string>> | undefined | null;
};
type FiniteResultsProps<E> = ResulListProps<E> & {
    sortAfterKey: string;
    counterIsVisible: boolean;
    selectOptions: Options;
    language: string;
    setSortResult: setSortResultsType;
    memoryResults: boolean;
    viewButton: boolean;
    setViewButtonDetail: React.Dispatch<React.SetStateAction<boolean>>;
};
export declare function FiniteResults<E>({ renderers, searchQuery, onDetail, setDetailMobile, sort, isMobile, overChangeCard, language, sortAfterKey, setTotalResult, numberOfResults, setIdPreview, memoryResults, viewButton, setViewButtonDetail, }: FiniteResultsProps<E>): import("react/jsx-runtime").JSX.Element;
type InfiniteResultsProps<E> = ResulListProps<E> & {
    setSortAfterKey: React.Dispatch<React.SetStateAction<string>>;
    sortAfterKey: string;
    setIdPreview: React.Dispatch<React.SetStateAction<string>> | undefined | null;
    language: string;
    setViewButtonDetail: React.Dispatch<React.SetStateAction<boolean>>;
    memoryResults: boolean;
    viewButton: boolean;
    noResultsCustom: React.ReactNode;
    setSelectedSort: setSortResultsType;
    templateCustom?: TemplatesProps | null;
};
export declare function InfiniteResults<E>({ renderers, searchQuery, onDetail, setDetailMobile, sort, isMobile, overChangeCard, language, setSortAfterKey, sortAfterKey, setTotalResult, numberOfResults, setIdPreview, memoryResults, noResultsCustom, viewButton, templateCustom, setViewButtonDetail, }: InfiniteResultsProps<E>): import("react/jsx-runtime").JSX.Element;
type VirtualResultsProps<E> = ResulListProps<E> & {
    sortAfterKey: string;
    language: string;
    memoryResults: boolean;
    viewButton: boolean;
    setViewButtonDetail: React.Dispatch<React.SetStateAction<boolean>>;
};
export declare function VirtualResults<E>({ renderers, searchQuery, onDetail, setDetailMobile, sort, isMobile, overChangeCard, language, sortAfterKey, setTotalResult, numberOfResults, memoryResults, viewButton, setViewButtonDetail, }: VirtualResultsProps<E>): import("react/jsx-runtime").JSX.Element;
export declare function useInfiniteResults<E>(searchQuery: Array<SearchToken>, sort: SortField[], language: string, sortAfterKey: string, numberOfResults: number, memoryResults: boolean, overrideSearchWithCorrection?: RangeContextProviderProps, setOverrideSearchWithCorrection?: setterConnection): import("react-query").UseInfiniteQueryResult<{
    result: GenericResultItem<E>[];
    total: number;
    autocorrection: import("./client").AutocorrectionType;
}, unknown>;
export declare function recoverySearchQueryAndSort(searchQuery: SearchToken[]): {
    searchQueryData: SearchToken[];
    sortData: any;
};
export {};
