import { ReactNode } from 'react';
import './pagination.less';
export type BuildTriggerLabelParams = {
    isDisabled?: boolean;
    startOfPage: number;
    endOfPage: number | null;
    total: number;
    isExceededTotalLimit: boolean;
    totalLimit?: number;
};
export type PaginationControlsProps = {
    /** Total number of items */
    total: number;
    /** Limit for the total number. (If total is gte than total limit "<totalLimit>+" will be rendered in the label e.g. 1-100 of 3000+) */
    totalLimit?: number;
    count?: number;
    /** Boolean that determines if nextPage is available */
    nextPage?: boolean;
    /** Current page. 0 indexed */
    currentPage: number;
    /** Number of items on the page */
    pageSize?: number;
    availableSizes?: Array<number>;
    /** An array of possible page sizes. Will be used to populate pageSize dropdown */
    isDisabled?: boolean;
    /** Determines whether data is loading and there is no info yet */
    isLoading?: boolean;
    testId?: string;
    /** Optional function to build label between next and previous buttons */
    buildTriggerLabel?: (labelParams: BuildTriggerLabelParams) => ReactNode;
    prevPageAriaLabel?: string;
    nextPageAriaLabel?: string;
    /** handler to change currentPage */
    onPageChange: (page: number, pageSize?: number) => void;
    /** handler to change pageSize */
    onPageSizeChange?: (size: number) => void;
    /** Text that will be used if there is no available page sizes to select from under current circumstances */
    noPageSizesText?: string;
};
/** Pagination allows navigate through pages and change page size. */
export default function PaginationControls(props: PaginationControlsProps): import("react/jsx-runtime").JSX.Element;
