import { Component, CSSProperties, ReactElement, ReactNode } from 'react';
import { Size } from '../_util/enum';
import { SelectProps } from '../select';
import ConfigContext, { ConfigContextValue } from '../config-provider/ConfigContext';
declare function itemRender(page: number, type: string, item: ReactNode, disabled: boolean, size?: Size): JSX.Element | undefined;
export interface PaginationProps {
    total?: number;
    defaultCurrent?: number;
    current?: number;
    defaultPageSize?: number;
    pageSize?: number;
    onChange?: (page: number, pageSize?: number) => void;
    hideOnSinglePage?: boolean;
    showSizeChanger?: boolean;
    showSizeChangerLabel?: boolean;
    tiny?: boolean;
    pageSizeOptions?: string[];
    onShowSizeChange?: (current: number, size: number) => void;
    showQuickJumper?: boolean;
    showTotal?: false | ((total: number, range: [number, number]) => ReactNode);
    sizeChangerOptionText?: false | ((value: string) => ReactNode);
    size?: Size;
    simple?: boolean;
    style?: CSSProperties;
    locale?: Record<string, any>;
    className?: string;
    prefixCls?: string;
    selectPrefixCls?: string;
    selectProps?: SelectProps;
    renderJumper?: () => ReactNode;
    itemRender?: (page: number, type: 'page' | 'first' | 'last' | 'prev' | 'next' | 'jump-prev' | 'jump-next', element: ReactElement) => ReactNode;
    role?: string;
}
export interface PaginationConfig extends PaginationProps {
    position?: 'top' | 'bottom' | 'both';
}
export declare type PaginationLocale = any;
export default class Pagination extends Component<PaginationProps, {}> {
    static displayName: string;
    static get contextType(): typeof ConfigContext;
    static defaultProps: {
        showSizeChanger: boolean;
        showSizeChangerLabel: boolean;
        tiny: boolean;
        pageSizeOptions: string[];
        showTotal: (total: number, range: number[]) => string;
        sizeChangerOptionText: (value: string) => string;
        itemRender: typeof itemRender;
    };
    context: ConfigContextValue;
    renderPagination: (contextLocale: any) => JSX.Element;
    render(): JSX.Element;
}
export {};
