import { TableRow } from '../../types';
import { DataTableCacheOptions, SortedColumn } from '../types';
/**
 * Hook for caching resolved page data in DataTable.
 *
 * Features:
 * - Caches resolved page data per page index using a Map stored in a ref
 * - Returns cached data synchronously on cache hit, avoiding unnecessary API calls
 * - Synchronously clears cache during render when invalidation triggers change
 * - Size-based eviction (FIFO) when cache exceeds maxSize: oldest entry is dropped to make room
 *
 * @param config - Configuration including loadPageData function, cache options, and invalidation triggers
 * @returns Object containing getOrLoad function and clearCache function
 */
export declare function usePageDataCache<T>(config: {
    loadPageData?: (params: {
        pageIndex: number;
        pageSize: number;
        sorting?: SortedColumn;
    }) => TableRow<T>[] | Promise<TableRow<T>[]>;
    cache?: DataTableCacheOptions;
    refreshKey?: string | number;
    refreshCounter: number;
    rowsPerPage: number;
    sorting?: SortedColumn;
}): {
    getOrLoad: (pageIndex: number, pageSize: number, sorting?: SortedColumn) => TableRow<T>[] | Promise<TableRow<T>[]>;
    clearCache: () => void;
};
