import React from "react";
import { setSortResultsType } from "./SortResults";
import { GenericResultItem, SearchToken, SortField } from "./client";
import { Renderers } from "./useRenderers";
import { SelectionsAction, SelectionsState } from "./useSelections";
import { RangeContextProviderProps, setterConnection } from "./useRange";
export type ResultsDisplayMode = {
    type: "finite";
} | {
    type: "infinite";
} | {
    type: "virtual";
};
type ResultsProps<E> = {
    state: SelectionsState;
    dispatch: React.Dispatch<SelectionsAction>;
    searchQuery: Array<SearchToken>;
    onDetail(result: GenericResultItem<E>): void;
    displayMode: ResultsDisplayMode;
    sort: SortField[];
    setSortResult: setSortResultsType;
    setDetailMobile(result: GenericResultItem<E>): void;
    isMobile: boolean;
    overChangeCard?: boolean;
    language: string;
    sortAfterKey: string;
    setTotalResult: React.Dispatch<React.SetStateAction<number | null>>;
    pageSize?: number;
    initialPage?: number;
    callback?: () => void;
    CustomNoResults?: React.ReactNode | null;
    backgroundSkeleton?: string | null | undefined;
};
declare function ResultsPagination<E>({ state, dispatch, onDetail, searchQuery, sort, setSortResult, isMobile, setDetailMobile, overChangeCard, language, sortAfterKey, setTotalResult, pageSize, initialPage, callback, CustomNoResults, backgroundSkeleton, }: ResultsProps<E>): import("react/jsx-runtime").JSX.Element | null;
export declare const ResultsPaginationMemo: React.MemoExoticComponent<typeof ResultsPagination>;
type InfiniteResultsProps<E> = {
    state: SelectionsState;
    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>>;
    sortAfterKey: string;
    callback?: () => void;
    customNoResults?: React.ReactNode | null;
    dynamicFilters?: boolean;
};
export declare function InfiniteResults<E>({ state, renderers, searchQuery, onDetail, setDetailMobile, sort, isMobile, overChangeCard, language, sortAfterKey, setTotalResult, callback, customNoResults, dynamicFilters, }: InfiniteResultsProps<E>): import("react/jsx-runtime").JSX.Element;
export declare function useInfiniteResults<E>(state: SelectionsState, searchQuery: Array<SearchToken>, sort: SortField[], language: string, sortAfterKey: string, elementForPage: number, offset: number, overrideSearchWithCorrection?: RangeContextProviderProps, setOverrideSearchWithCorrection?: setterConnection, dynamicFilters?: boolean): import("react-query").UseInfiniteQueryResult<{
    result: GenericResultItem<E>[];
    total: number;
    autocorrection: import("./client").AutocorrectionType;
}, unknown> | undefined;
export declare function SkeletonResult({ background, }: {
    background?: string | null | undefined;
}): import("react/jsx-runtime").JSX.Element;
export {};
