import type { ControlSize } from "../../Theme/tokens/primitives/controlSizes"; /** Screen-reader names, merged over `defaultPaginationLabels`; override them all for another language. */ export interface PaginationLabels { /** Accessible name of the previous-page button. */ previous: string; /** Accessible name of the next-page button. */ next: string; /** Names a numbered button from its 1-based page, e.g. (3) => "Page 3". */ page: (page: number) => string; /** Names the rows-per-page picker. */ pageSize: string; } export declare const defaultPaginationLabels: PaginationLabels; type PaginationCount = { /** Total pages; anything below 1 renders a single page. */ pageCount: number; totalItems?: undefined; /** Rows per page; only the rows-per-page picker reads it here. */ pageSize?: number; } | { /** Total rows; pages are derived as ceil(totalItems / pageSize), at least 1. */ totalItems: number; /** Rows per page; also the picker's current value. */ pageSize: number; pageCount?: undefined; }; /** Controlled page navigation: numbered pages, ellipses, previous/next and an optional rows-per-page picker. */ export type PaginationProps = PaginationCount & { /** Current page, 1-based. Out-of-range values are clamped for display, never reported back. */ page: number; /** Fires with the chosen 1-based page; never for the page already shown. */ onPageChange: (page: number) => void; /** Rows-per-page choices; the picker needs this, `pageSize` and `onPageSizeChange`. */ pageSizeOptions?: number[]; /** Fires with the chosen page size; resetting `page` is the caller's call. */ onPageSizeChange?: (pageSize: number) => void; /** Pages kept either side of the current one; defaults to 1. First and last always show. */ siblingCount?: number; /** Same size names as Button; defaults to "sm". */ size?: ControlSize; /** Disables every control, e.g. while the next page loads. */ isDisabled?: boolean; /** Names the nav landmark; defaults to "Pagination". Give each pager on a screen its own. */ "aria-label"?: string; /** Overrides the default English names; unset keys keep their default. */ labels?: Partial; /** Test id on the nav element. */ "data-testid"?: string; }; export {};