import type { CursorPaginationProps } from '../../components/ui/cursor-pagination'; /** * Client-side pagination configuration */ export interface ClientPaginationConfig { type: 'client'; currentPage: number; totalPages: number; itemCount: number; itemName?: string; onNext: () => void; onPrevious: () => void; showInfo?: boolean; } /** * Server-side cursor pagination configuration */ export interface ServerPaginationConfig { type: 'server'; hasNextPage: boolean; hasLoadedBeyondFirst: boolean; startCursor?: string | null; endCursor?: string | null; itemCount: number; itemName?: string; onNext: () => void | Promise; onReset: () => void | Promise; showInfo?: boolean; } export type PaginationConfig = ClientPaginationConfig | ServerPaginationConfig; /** * Unified pagination hook that works for both client-side and server-side pagination * * @example Client-side pagination * ```typescript * const pagination = useTablePagination({ * type: 'client', * currentPage: 1, * totalPages: 10, * itemCount: 20, * itemName: 'scripts', * onNext: () => setPage(p => p + 1), * onPrevious: () => setPage(p => p - 1), * onReset: () => setPage(1) * }) * ``` * * @example Server-side pagination * ```typescript * const pagination = useTablePagination({ * type: 'server', * hasNextPage: pageInfo.hasNextPage, * hasLoadedBeyondFirst: true, * startCursor: pageInfo.startCursor, * endCursor: pageInfo.endCursor, * itemCount: devices.length, * itemName: 'devices', * onNext: fetchNextPage, * onReset: fetchFirstPage * }) * ``` */ export declare function useTablePagination(config: PaginationConfig | null): CursorPaginationProps | undefined; //# sourceMappingURL=use-table-pagination.d.ts.map