export type PaginationMenuProps = { className?: string; /** Defaults to "large" if not supplied */ type?: "small" | "large" | "cursor"; pageSize?: PageSize; } & (PaginationMenuPropsSmall | PaginationMenuPropsLarge | PaginationMenuPropsCursor); type PaginationMenuPropsSmall = { type: "small"; } & PaginationMenuSmallProps; type PaginationMenuPropsLarge = { type?: "large"; } & PaginationMenuLargeProps; type PaginationMenuPropsCursor = { type: "cursor"; } & PaginationMenuCursorProps; export interface PaginationMenuSmallProps { /** * Accessible labels for the pagination buttons. * @default { previous: "Previous", next: "Next" } */ localization?: Pick; pageCount: number; currentPageNumber: number; onChange: OnPaginationChange; pageSize?: PageSize; } export interface PaginationMenuLargeProps { pageCount: number; currentPageNumber: number; onChange: OnPaginationChange; pageSize?: PageSize; localization: Localization; resultCount?: number; } export interface PaginationMenuCursorProps { previousCursor?: string | null; nextCursor?: string | null; onChange: OnPaginationCursorChange; pageSize?: number; localization: Pick; } export type OnPaginationChange = (pageNumber: number, pageSize?: PageSize) => void; export type OnPaginationCursorChange = (newCursor: string) => void; export type PageSize = 25 | 50 | 75 | 100; export interface Localization { display: string; page: string; previous: string; next: string; of: string; } export type Option = { value: number; label: string; }; export {};