/**
 * @license chowa v1.1.3
 *
 * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import * as React from 'react';
import * as PropTypes from 'prop-types';
import * as moment from 'moment';
import { DisabledDate } from '../tool';
import { Mode } from '../calendar-mode';
export interface MinRangeCalendarProps {
    className?: string;
    style?: React.CSSProperties;
    defaultValue?: [moment.Moment, moment.Moment];
    value?: [moment.Moment, moment.Moment];
    disabledDate?: DisabledDate;
    timeable?: boolean;
    secondable?: boolean;
    determinable?: boolean;
    clearable?: boolean;
    onClear?: () => void;
    onConfirm?: () => void;
    onChange?: (range: [moment.Moment, moment.Moment]) => void;
}
export interface MinRangeCalendarState {
    beginActiveMode: Mode;
    beginDate: moment.Moment;
    beginTime: moment.Moment;
    beginDisplay: moment.Moment;
    beginEach: moment.Moment;
    endActiveMode: Mode;
    endDate: moment.Moment;
    endTime: moment.Moment;
    endDisplay: moment.Moment;
    endEach: moment.Moment;
    prepareEndDate: moment.Moment;
}
declare class MinRangeCalendar extends React.PureComponent<MinRangeCalendarProps, MinRangeCalendarState> {
    static propTypes: {
        className: PropTypes.Requireable<string>;
        style: PropTypes.Requireable<object>;
        defaultValue: PropTypes.Requireable<any[]>;
        value: PropTypes.Requireable<any[]>;
        timeable: PropTypes.Requireable<boolean>;
        secondable: PropTypes.Requireable<boolean>;
        determinable: PropTypes.Requireable<boolean>;
        disabledDate: PropTypes.Requireable<object>;
        onConfirm: PropTypes.Requireable<(...args: any[]) => any>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        clearable: PropTypes.Requireable<boolean>;
        onClear: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        timeable: boolean;
        secondable: boolean;
        clearable: boolean;
        determinable: boolean;
    };
    constructor(props: MinRangeCalendarProps);
    componentDidUpdate(preProps: MinRangeCalendarProps): void;
    private triggerChange;
    private updateBeginEach;
    private updateBeginDisplay;
    private updateBeginMode;
    private onBeginTimeSelectHandler;
    private updateEndEach;
    private updateEndDisplay;
    private updateEndMode;
    private onEndTimeSelectHandler;
    private onRangeSelectHandler;
    private updateBothMode;
    private onClearHandler;
    private onConfirmHandler;
    private onBeofreSelectHandler;
    private onDeDateBeforeSelectHandler;
    render(): JSX.Element;
}
export default MinRangeCalendar;
