/** Pages to render, with "ellipsis" marking an elided run. Pure and exported * so the truncation math is testable without rendering. * * Anchored on the real `leftSibling`/`rightSibling` for the current page — * not a page-count-independent fixed span. An earlier version's two * single-ellipsis branches used a fixed window (`range(1, windowSize)` / * `range(pageCount - windowSize + 1, pageCount)`) that didn't move with * `page` at all, so `paginationRange(3, 13, 1)` came out as * `[1, 2, 3, "ellipsis", 13]`, silently dropping true sibling page 4. * * Each single-ellipsis branch instead widens only as far as `max(sibling, * windowSize)` / `min(sibling, pageCount - windowSize + 1)` — enough to * always include the real sibling, while still padding out to a full * `2 * siblingCount + 1` run when clamping at an edge would otherwise * shrink it (e.g. `paginationRange(13, 13, 1)` needs `11, 12, 13`, not * just `12, 13`). * * An ellipsis is only rendered where it elides at least two pages — a * single hidden page is rendered directly instead, since an ellipsis * standing in for one number is worse than the number. */ export declare function paginationRange(page: number, pageCount: number, siblingCount: number): Array; export interface PaginationProps { /** * Current page, 1-based. A value outside `[1, pageCount]` (including * non-finite values like `NaN`) is clamped for rendering and logs a * `console.warn` in development. `pageCount < 1` renders no page buttons. */ page: number; /** Total number of pages. */ pageCount: number; /** * Called with the requested page. Required — unlike Table's `onSortChange`/ * `onSelectionChange`, which are optional because `sortable`/`selectable` * gate whether they're meaningful, `Pagination` has no such gating boolean: * the prop is unconditionally meaningful, so a `Pagination` without it is a * dead control (final review finding, D62). */ onPageChange: (page: number) => void; /** Pages shown either side of the current one before truncating. @default 1 */ siblingCount?: number; /** Accessible name for the nav landmark. @default "Pagination" */ "aria-label"?: string; className?: string; } /** Numbered pager with ellipsis truncation (D63). Standalone rather than a * Table family member: `table-pagination` composes it as a Toolbar sibling of * the page-size Select. */ export declare function Pagination({ page, pageCount, onPageChange, siblingCount, "aria-label": ariaLabel, className, }: PaginationProps): import("react").JSX.Element; //# sourceMappingURL=Pagination.d.ts.map