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, };