import React from 'react';
declare enum PagingMode {
    PAGING_MODE_LISTING = "listing",
    PAGING_MODE_PAGES = "pages"
}
declare type RangesResult = {
    head: [number, number] | null;
    middle: [number, number] | null;
    tail: [number, number] | null;
};
declare type PurePaginationProps = {
    className: string;
    showPageSizeSelector: boolean;
    beforeAfterAmount: number;
    boundaryAmount: number;
    mode: PagingMode;
    currentPageLabel: string;
    goToPageLabel: string;
    pageNextLabel: string;
    pagePrevLabel: string;
    pageSizeSelectorText: string;
    allText: string;
    pageLabel: string;
    itemsCount: number;
    activePage: number;
    onClickNext: Function;
    onClickPrev: Function;
    isNextButtonDisabled?: null | Function;
    isPrevButtonDisabled?: null | Function;
    onChangePageSize: Function;
    onChangePage: Function;
    pageSizes: number[];
    pageSize: number;
};
export declare class PurePagination extends React.Component<PurePaginationProps> {
    static PagingModes: {
        listing: string;
        pages: string;
    };
    static defaultProps: {
        pageSizes: number[];
        className: any;
        showPageSizeSelector: boolean;
        beforeAfterAmount: number;
        boundaryAmount: number;
        mode: string;
        onClickNext: (...args: any[]) => void;
        onClickPrev: (...args: any[]) => void;
        readonly currentPageLabel: string;
        readonly goToPageLabel: string;
        readonly pageNextLabel: string;
        readonly pagePrevLabel: string;
        readonly pageSizeSelectorText: string;
        readonly allText: string;
        readonly pageLabel: string;
    };
    calculatePageCount(itemsCount: number, pageSize: number): number;
    /**
     * Calculates pagination ranges
     *
     * @param {Number} activePage Zero based value of active page
     * @param {Number} beforeAfterAmount A number of items wanted to show before and after active page
     * @param {Number} boundaryAmount A number of items wanted to show on head and on tail
     * @param {Number} pageCount Actual count of pages
     */
    getRanges(activePage: number, beforeAfterAmount: number, boundaryAmount: number, pageCount: number): RangesResult;
    isRangeEmpty(range: any): boolean;
    hasGap(rangeA: any, rangeB: any): boolean;
    hasHeadDots(ranges: any): boolean;
    hasTailDots(ranges: any): boolean;
    formatPageSize(digit: any, itemsCount: any, pageSizes: any): any;
    getPageSizeSelector(pageSizes: any, pageSize: any, itemsCount: any): JSX.Element;
    getPageSizeSelectorLabel(): string;
    getPageCount(): number;
    getPageIndex(): number;
    isNextButtonDisabled(): any;
    isPrevButtonDisabled(): any;
    handleClickPrev: () => void;
    handleClickNext: () => void;
    handleChangePageSize: (event: any) => void;
    renderDot(className: any): JSX.Element;
    renderPages(range: any, activePage: any, handler: any): JSX.Element[];
    render(): JSX.Element;
}
export {};
