import React from "react";
/**
 * Props for the VirtualList component, which efficiently renders large lists
 * by virtualizing DOM nodes to improve performance.
 */
type VirtualListProps<T> = {
    /**
     * Gap between items in the list.
     */
    gap?: number;
    /**
     * Height of each item in the list.
     * This is used to calculate the total height of the list and the position of each item.
     */
    itemHeight: number;
    /**
     * Number of extra items to render outside the visible viewport for smoother scrolling.
     * Defaults to 5.
     */
    overscan?: number;
    /**
     * React component or node to display when the list is loading additional items.
     * If not provided, a default loading spinner will be used.
     */
    LoadingComponent?: React.ReactNode;
    /**
     * Indicates whether new items are currently being loaded.
     */
    isLoading?: boolean;
    /**
     * Indicates if there are more items to load.
     */
    hasNextPage?: boolean;
    /**
     * Number of items to check before the end of the list to trigger loading more items.
     * Defaults to 5.
     */
    threshold?: number;
    /**
     * Callback function to be called when the user scrolls to the end of the visible items.
     * This can be used to load more items when the user reaches the end of the list.
     */
    onVisibleItemsScrollEnd?: () => void;
    /**
     * Function to render each item in the list.
     * Receives a single value from the items array as an argument and should return a React node.
     */
    renderItem: (item: T) => React.ReactNode;
    /**
     * The array of items which will be rendered
     */
    items: T[];
    /**
     * When set to true, the list will scroll to the top
     */
    scrollToTop?: boolean;
    /**
     * React component or node to display at the bottom of the list, after all items.
     */
    bottomComponent?: React.ReactNode;
};
export declare const VirtualList: <T>({ gap, hasNextPage, isLoading, itemHeight, items, LoadingComponent, onVisibleItemsScrollEnd, overscan, renderItem, scrollToTop, bottomComponent, threshold, }: VirtualListProps<T>) => React.JSX.Element;
export {};
//# sourceMappingURL=VirtualList.d.ts.map