import React from 'react'; export type PaginationType = 'numbered' | 'simple'; export type PaginationSize = 'sm' | 'md' | 'lg'; export interface PaginationProps extends Omit, 'onChange'> { /** The current page, 1-based. */ page: number; /** Total number of pages. One or more. */ pageCount: number; /** Called with the requested page. Not called for the current page. */ onPageChange?: (page: number) => void; /** Matches the Figma `Type` variant. */ type?: PaginationType; /** Matches the Figma `Size` variant. */ size?: PaginationSize; /** * How many pages to show either side of the current one. The first and last * are always shown, so the widest run is `siblingCount * 2 + 5`. */ siblingCount?: number; /** Renders the rows-per-page control. Matches the Figma `Show Page Size`. */ showPageSize?: boolean; /** Current rows-per-page value. Required when `showPageSize`. */ pageSize?: number; /** Options offered by the rows-per-page control. */ pageSizeOptions?: number[]; onPageSizeChange?: (pageSize: number) => void; /** * Every string the pager renders, for translation. English by default. The * landmark's name is `aria-label` — "Pagination" when it is left out. */ labels?: PaginationLabels; className?: string; } /** Numbers arrive formatted for the locale — "1,024" or "1.024". */ export interface PaginationLabels { /** "Go to previous page". */ previous?: string; /** "Go to next page". */ next?: string; /** Each numbered cell's name — "Go to page 3". */ page?: (page: string) => string; /** The simple pager's summary, announced on change — "Page 3 of 12". */ summary?: (page: string, pageCount: string) => string; /** Names the rows-per-page control — "Rows per page". */ pageSize?: string; /** Each rows-per-page option — "25 per page". */ perPage?: (pageSize: string) => string; } /** * Which page numbers to draw, and where the runs are broken. * * Module-scoped, deliberately not in the public barrel: it is this component's * internal logic, not API, and every public export owes an intent file. The * failure mode it guards is a pager that renders a gap marker with nothing behind it * — an ellipsis standing in for exactly one page, which is both a lie and a * cell the user cannot click to reach a page they can see the number of. * * The rule that prevents it: a gap is only drawn where it replaces TWO or more * pages. `left > 2` rather than `left > 1`, and the mirror on the right. */ export declare function pageItems(page: number, pageCount: number, siblingCount?: number): Array; /** * Page navigation for a table or list. * * Geometry from the Figma `Pagination` (1291:503) and `Pagination Item` * (1283:289) components. The Figma item set is not exported — a caller places a * Pagination, never a cell. */ export declare const Pagination: React.ForwardRefExoticComponent>; //# sourceMappingURL=Pagination.d.ts.map