import { ButtonHTMLAttributes } from "react"; declare type IBasePaginationProps = { currentPage: number; setCurrentPage: (page: number) => void; truncableText?: string; truncableClassName?: string; }; declare type IPaginationProps = IBasePaginationProps & { totalPages: number; edgePageCount: number; middlePagesSiblingCount: number; className?: string; children?: React.ReactNode; }; declare type IUsePagination = IBasePaginationProps & { pages: number[]; hasPreviousPage: boolean; hasNextPage: boolean; previousPages: number[]; isPreviousTruncable: boolean; middlePages: number[]; isNextTruncable: boolean; nextPages: number[]; }; declare type IPagination = IUsePagination & { setCurrentPage: (page: number) => void; }; declare type ButtonProps = ButtonHTMLAttributes & { as?: React.ReactElement; children?: string | React.ReactNode; className?: string; dataTestId?: string; }; declare type PageButtonProps = ButtonProps & { /** * Provide a custom ReactElement (e.g. Next/Link) */ as?: React.ReactElement; activeClassName?: string; inactiveClassName?: string; dataTestIdActive?: string; dataTestIdInactive?: string; renderExtraProps?: (pageNum: number) => {}; }; export { IPaginationProps, IUsePagination, IPagination, ButtonProps, PageButtonProps, };