import "./pagination.css"; import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; /** * Localizable strings for `Pagination`; an omitted field keeps the English * default. The formatters receive 1-indexed display numbers and the raw total, * so a caller controls its own locale (e.g. `total.toLocaleString("vi-VN")`). */ export interface PaginationLabels { /** Range summary with a known total. Default `${start}–${end} of ${total}`. */ rangeWithTotal?: (start: number, end: number, total: number) => string; /** Range summary without a total. Default `${start}–${end}`. */ range?: (start: number, end: number) => string; /** Button tooltips. Default "Previous" / "Next". */ previous?: string; next?: string; } export interface PaginationProps extends StyleProps { /** 0-indexed. */ page: number; pageSize: number; /** Number of rows on the current page. Drives the displayed range. */ rowCount: number; /** True when the server returned exactly `pageSize` rows. */ hasMore: boolean; /** Optional total when known (e.g. from a separate count query). Set, the * summary reads "1–100 of 542"; omitted, just the range. */ total?: number; loading?: boolean; onPageChange: (page: number) => void; /** Override the English strings for localization. Omit to keep defaults. */ labels?: PaginationLabels; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** * Which rows are on screen, and arrows to change them. A pure control — it owns * no border, background or padding; the band that frames it supplies those. * * The range is also the register's COUNT. Pass `counted` rather than `count` to * a `Table` paired with this, or the matched total is printed twice. * * **`onPageChange` must also return the viewport to the first row.** The scroll * container belongs to the page, not to the kit, so a reader who pages from the * bottom otherwise lands on the LAST rows of the next page. The reset belongs to * "the window changed" — a filter and a sort owe it too. `tpl_item_list` is the * reference. * * ONE per register, ABOVE the rows, which is where the reset leaves the cursor. */ export declare function Pagination(props: PaginationProps): React.ReactElement>;