import { HTMLAttributes, MouseEvent, PureComponent } from 'react';
import PropTypes from 'prop-types';
import { CombinePropsAndAttributes } from '../../helpers';
interface ISelfProps {
    tabIndex?: number;
    type?: 'button' | 'submit';
    name?: string;
    defaultPage?: number;
    page?: number;
    total: number;
    disabled?: boolean;
    mapPagesLabel?(label: string): string;
    onChange?(page: number, event: MouseEvent): any;
}
export declare type IProps = CombinePropsAndAttributes<ISelfProps, HTMLAttributes<HTMLElement>>;
interface IState {
    page: number;
}
export default class Paginator extends PureComponent<IProps, IState> {
    static propTypes: {
        tabIndex: PropTypes.Requireable<number>;
        type: PropTypes.Requireable<string>;
        name: PropTypes.Requireable<string>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        defaultPage: PropTypes.Requireable<number>;
        page: PropTypes.Requireable<number>;
        total: PropTypes.Validator<number>;
        disabled: PropTypes.Requireable<boolean>;
        mapPagesLabel: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        tabIndex: number;
        type: string;
        defaultPage: number;
        disabled: boolean;
        mapPagesLabel: (_: any) => any;
    };
    static getDerivedStateFromProps({ page }: IProps, { page: prevPage }: IState): IState;
    constructor(props: any);
    render(): JSX.Element;
    private pages;
    private page;
    private onChange;
    private triggerNewPage;
}
export {};
//# sourceMappingURL=Paginator.d.ts.map