import * as React from 'react';
import * as PropTypes from 'prop-types';
import { LocaleProps } from './Options';
export interface PaginationProps {
    total?: number;
    defaultCurrent?: number;
    current?: number;
    defaultPageSize?: number;
    pageSize?: number;
    onChange?: (page: number, pageSize?: number) => void;
    hideOnSinglePage?: boolean;
    showSizeChanger?: boolean;
    pageSizeOptions?: string[];
    onShowSizeChange?: (current: number, size: number) => void;
    showQuickJumper?: boolean;
    showTotal?: (total: number, range: [number, number]) => React.ReactNode;
    size?: string;
    simple?: boolean;
    style?: React.CSSProperties;
    locale?: LocaleProps;
    className?: string;
    prefixCls?: string;
    selectPrefixCls?: string;
    itemRender?: (page: number, type: 'page' | 'prev' | 'next' | 'jump-prev' | 'jump-next', node: React.ReactNode) => React.ReactNode;
    selectComponentClass?: any;
    showLessItems?: boolean;
    showTitle?: boolean;
    showPrevNextJumpers?: boolean;
    goButton?: boolean | React.ReactNode;
    getPopupContainer?: (triggerNode: Element) => HTMLElement;
}
declare function noop(): void;
declare function defaultItemRender(page: number, type: string, element: React.ReactNode): React.ReactNode;
export default class Pagination extends React.Component<PaginationProps, any> {
    static propTypes: {
        prefixCls: PropTypes.Requireable<string>;
        current: PropTypes.Requireable<number>;
        defaultCurrent: PropTypes.Requireable<number>;
        total: PropTypes.Requireable<number>;
        pageSize: PropTypes.Requireable<number>;
        defaultPageSize: PropTypes.Requireable<number>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        hideOnSinglePage: PropTypes.Requireable<boolean>;
        showSizeChanger: PropTypes.Requireable<boolean>;
        showLessItems: PropTypes.Requireable<boolean>;
        onShowSizeChange: PropTypes.Requireable<(...args: any[]) => any>;
        selectComponentClass: PropTypes.Requireable<(...args: any[]) => any>;
        showPrevNextJumpers: PropTypes.Requireable<boolean>;
        showQuickJumper: PropTypes.Requireable<boolean | object>;
        showTitle: PropTypes.Requireable<boolean>;
        pageSizeOptions: PropTypes.Requireable<(string | null)[]>;
        showTotal: PropTypes.Requireable<(...args: any[]) => any>;
        locale: PropTypes.Requireable<object>;
        style: PropTypes.Requireable<object>;
        itemRender: PropTypes.Requireable<(...args: any[]) => any>;
        getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        defaultCurrent: number;
        total: number;
        defaultPageSize: number;
        onChange: typeof noop;
        className: string;
        selectPrefixCls: string;
        prefixCls: string;
        selectComponentClass: null;
        hideOnSinglePage: boolean;
        showPrevNextJumpers: boolean;
        showQuickJumper: boolean;
        showSizeChanger: boolean;
        showLessItems: boolean;
        showTitle: boolean;
        onShowSizeChange: typeof noop;
        locale: {
            items_per_page: string;
            jump_to: string;
            jump_to_confirm: string;
            page: string;
            prev_page: string;
            next_page: string;
            prev_5: string;
            next_5: string;
            prev_3: string;
            next_3: string;
        };
        style: {};
        itemRender: typeof defaultItemRender;
        getPopupContainer: (triggerNode: HTMLElement) => Node | null;
    };
    paginationNode: HTMLElement;
    constructor(props: PaginationProps);
    componentWillReceiveProps(nextProps: PaginationProps): void;
    componentDidUpdate(prevProps: PaginationProps, prevState: any): void;
    getJumpPrevPage(): number;
    getJumpNextPage(): number;
    savePaginationNode: (node: HTMLUListElement) => void;
    calculatePage: (p?: any) => number;
    isValid: (page: number) => boolean;
    handleKeyDown: (e: React.KeyboardEvent<any>) => void;
    handleKeyUp: (e: any) => void;
    changePageSize: (size: number) => void;
    handleChange: (p: number) => any;
    prev: () => void;
    next: () => void;
    jumpPrev: () => void;
    jumpNext: () => void;
    hasPrev: () => boolean;
    hasNext: () => boolean;
    runIfEnter: (event: React.KeyboardEvent<any>, callback: (e?: any) => void, ...restParams: any[]) => void;
    runIfEnterPrev: (e: React.KeyboardEvent<any>) => void;
    runIfEnterNext: (e: React.KeyboardEvent<any>) => void;
    runIfEnterJumpPrev: (e: React.KeyboardEvent<any>) => void;
    runIfEnterJumpNext: (e: React.KeyboardEvent<any>) => void;
    handleGoTO: (e: any) => void;
    render(): JSX.Element | null;
}
export {};
