export interface IPagination extends Pick { /** Style of pagination */ type?: 'compact' | 'full'; /** Total number of pages */ count?: number; /** Current page */ value: number; /** * Callback function when the page changes */ onChange: (currentPage: number, totalPages: number) => void; /** Number of items per page */ itemsPerPage?: number; /** Selectable options for number of items per page */ itemsPerPageConfig?: number[] | false; /** Toggles whether to show '1 to X of Y' on full pagination mode */ showItemRange?: boolean; /** * Accessible label for the pagination navigation region. Defaults to 'pagination'. * If multiple paginations are present, provide a unique label. */ ariaLabel?: string; 'data-testid'?: string; } export interface IPaginationVariant { isFirst: boolean; isLast: boolean; currentPage: number; /** * Callback function when the "items per page" value changes */ onUpdateItemsPerPage?: (itemsPerPage: number) => void; numberOfPages: number; onNextPage: () => void; onPrevPage: () => void; itemsPerPage?: number; /** items per page dropdown. if false it will not be displayed. */ itemsPerPageConfig?: number[] | false; /** Toggles whether to show '1 to x of Y' on full pagination mode */ showItemRange?: boolean; onSetPage?: (num: number) => void; count?: number; /** * Accessible label for the pagination navigation region. Defaults to 'pagination'. * If multiple paginations are present, provide a unique label. */ ariaLabel?: string; }