import "./pagination.css"; import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; /** Omitted fields keep English. Formatters get 1-indexed numbers and the raw total, so the caller formats * its own locale. */ export interface PaginationLabels { /** Default `${start}–${end} of ${total}`. */ rangeWithTotal?: (start: number, end: number, total: number) => string; /** Default `${start}–${end}`. */ range?: (start: number, end: number) => string; /** Default "Previous" / "Next". */ previous?: string; next?: string; } export interface PaginationProps extends StyleProps { page: number; pageSize: number; /** Drives the displayed range. */ rowCount: number; hasMore: boolean; /** Set, the summary reads "1–100 of 542". */ total?: number; loading?: boolean; onPageChange: (page: number) => void; labels?: PaginationLabels; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** Which rows are on screen, with arrows to change them; the framing band supplies border and padding. The * range is also the register's count, so pair it with a `Table`'s `counted`, not `count`. `onPageChange` * must scroll back to the first row, since the scroll container is the page's (as must a filter or sort). * One per register, above the rows, where the reset leaves the cursor. */ export declare function Pagination(props: PaginationProps): React.ReactElement>;