import { type VirtualizerOptions } from "@tanstack/react-virtual";
import { type BoxDataAttributes, type BoxProps } from "../box";
type InfiniteScrollProps = {
    hasNextPage: boolean;
    isFetchingNextPage: boolean;
    fetchNextPage: () => void;
} | {
    hasNextPage?: never;
    isFetchingNextPage?: never;
    fetchNextPage?: never;
};
type VirtualListProps<T> = {
    data: T[];
    itemContent: (index: number, item: T) => React.ReactNode;
    estimateSize: VirtualizerOptions<Element, Element>["estimateSize"];
    className?: BoxProps["className"];
    maxHeight?: number;
} & InfiniteScrollProps;
type VirtualGroupListProps = {
    itemContent: (index: number, groupIndex: number) => React.ReactNode;
    groupContent: (index: number) => React.ReactNode;
    increaseViewportBy?: {
        bottom: number;
        top: number;
    };
    groupCounts: number[];
    className?: BoxProps["className"];
    maxHeight?: number;
    estimateSize: VirtualizerOptions<Element, Element>["estimateSize"];
} & InfiniteScrollProps;
export declare const VirtualList: <ItemData = unknown>({ data, itemContent, className, estimateSize, maxHeight, hasNextPage, isFetchingNextPage, fetchNextPage, }: VirtualListProps<ItemData>) => import("react/jsx-runtime").JSX.Element;
export declare const GroupedVirtualList: ({ itemContent, groupContent, increaseViewportBy, groupCounts, className, maxHeight, estimateSize, hasNextPage, isFetchingNextPage, fetchNextPage, ...rest }: VirtualGroupListProps & BoxDataAttributes) => import("react/jsx-runtime").JSX.Element;
export {};
