import type { TableFeature } from "../core/table.js"; import type { OnChangeFn, RowData, RowModel, TableInstance, Updater } from "../types.js"; export interface PaginationState { pageIndex: number; pageSize: number; } export interface PaginationTableState { pagination: PaginationState; } export interface PaginationInitialTableState { pagination?: Partial; } export interface PaginationOptions { /** * If set to `true`, pagination will be reset to the first page when page-altering * state changes e.g.,`data` is updated, filters change, grouping changes, etc. */ autoResetPageIndex?: boolean; /** * Returns the row model after pagination has taken place, but no further. * * Pagination columns are automatically reordered by default to the start of the * columns list. If you would rather remove them or leave them as-is, set the * appropriate mode here. */ getPaginationRowModel?: ( /** @inheritDoc */ table: TableInstance) => () => RowModel; /** * Enables manual pagination. If this option is set to `true`, the table will not * automatically paginate rows using `getPaginationRowModel()` and instead will * expect you to manually paginate the rows before passing them to the table. This * is useful if you are doing server-side pagination and aggregation. */ manualPagination?: boolean; /** * If this function is provided, it will be called when the pagination state * changes and you will be expected to manage the state yourself. You can pass the * managed state back to the table via the `tableOptions.state.pagination` option. */ onPaginationChange?: OnChangeFn; /** * When manually controlling pagination, you should supply a total `pageCount` * value to the table if you know it. If you do not know how many pages there are, * you can set this to `-1`. */ pageCount?: number; } export interface PaginationDefaultOptions { onPaginationChange: OnChangeFn; } export interface PaginationInstance { /** @internal */ _autoResetPageIndex: () => void; /** @internal */ _getPaginationRowModel?: () => RowModel; /** * Returns whether the table can go to the next page. */ getCanNextPage: () => boolean; /** * Returns whether the table can go to the previous page. */ getCanPreviousPage: () => boolean; /** * Returns the page count. If manually paginating or controlling the pagination * state, this will come directly from the `options.pageCount` table option, * otherwise it will be calculated from the table data using the total row count * and current page size. */ getPageCount: () => number; /** * Returns an array of page options (zero-index-based) for the current page size. */ getPageOptions: () => number[]; /** * Returns the row model for the table after pagination has been applied. */ getPaginationRowModel: () => RowModel; /** * Returns the row model for the table before any pagination has been applied. */ getPrePaginationRowModel: () => RowModel; /** * Increments the page index by one, if possible. */ nextPage: () => void; /** * Decrements the page index by one, if possible. */ previousPage: () => void; /** * Resets the page index to its initial state. If `defaultState` is `true`, the * page index will be reset to `0` regardless of initial state. */ resetPageIndex: (defaultState?: boolean) => void; /** * Resets the page size to its initial state. If `defaultState` is `true`, the * page size will be reset to `10` regardless of initial state. */ resetPageSize: (defaultState?: boolean) => void; /** * Resets the `pagination` state to `initialState.pagination`, or `true` can be * passed to force a default blank state reset to `[]`. */ resetPagination: (defaultState?: boolean) => void; /** * Updates the page count using the provided function or value. */ setPageCount: (updater: Updater) => void; /** * Updates the page index using the provided function or value in the * `state.pagination.pageIndex` state. */ setPageIndex: (updater: Updater) => void; /** * Updates the page size using the provided function or value in the * `state.pagination.pageSize` state. */ setPageSize: (updater: Updater) => void; /** * Sets or updates the `state.pagination` state. */ setPagination: (updater: Updater) => void; } export declare const Pagination: TableFeature; //# sourceMappingURL=pagination.d.ts.map