import type { AnchorHTMLAttributes, HTMLAttributes, MouseEvent, ReactNode, Ref } from 'react'; export interface PaginationButton { type: 'page' | 'prev' | 'next' | 'more'; value: number; } export interface PaginationItemProps extends AnchorHTMLAttributes { rounds?: 'all' | 'right' | 'left'; checked?: boolean; disabled?: boolean; rootRef?: Ref; } export interface GetPaginationItemProps { (userProps?: PaginationItemProps): PaginationItemProps; } export interface RenderPaginationItem { (item: PaginationButton, getProps: GetPaginationItemProps): ReactNode; } export interface PaginationProps extends HTMLAttributes { rootRef?: Ref; current?: number; total?: number; onPageChange?: (event: MouseEvent, button: PaginationButton) => void; getItems?: (payload: { current: number; total: number; }) => PaginationButton[]; renderItem?: RenderPaginationItem; }