import type { HTMLAttributes } from "react"; /** * Pagination — accessible page-number navigation primitive. * * Renders a `` containing a button group: * `[<<] [<] 1 ... 5 6 [7] 8 9 ... 42 [>] [>>]`. The active page carries * `aria-current="page"`. Keyboard navigation (ArrowLeft / ArrowRight / * Home / End) is wired on the nav. Ellipses are rendered as * non-interactive `` elements with `aria-hidden`. * * Renders nothing when `totalPages <= 1` (the page is the whole list). * * `siblingCount` controls how many neighbors of the current page are * always visible (default 1 → "5 6 [7] 8 9"). `showJumpButtons` * toggles the first/last `<<` / `>>` buttons. * * Consumers control state (`currentPage`) and are responsible for any * URL routing — the buttons are ``, not ``. * * @example * */ export interface PaginationProps extends Omit, "onChange"> { currentPage: number; totalPages: number; onPageChange: (page: number) => void; /** Neighbors of current page that stay visible. Default 1. */ siblingCount?: number; /** Render `<<` / `>>` first/last buttons. Default true. */ showJumpButtons?: boolean; /** Size variant. Default md. */ size?: "sm" | "md"; } /** * Pure helper: compute the visible page-range with ellipses. * Exported for unit testing — most pagination bugs live here. */ export declare function computePageRange(currentPage: number, totalPages: number, siblingCount?: number): Array; declare const Pagination: import("react").ForwardRefExoticComponent>; export { Pagination };