import React, { Component } from 'react';
import moment, { Moment } from 'moment';
import { IBasePicker, IDatePickerProps } from '../common/interfces';
interface IButtonComponentProps {
    selectedDate: Moment | null;
    switchIsOpened(): void;
}
interface IState {
    currentDisplayDate: Moment;
    selectedDate: Moment | null;
    isOpened: boolean;
}
export interface IProps extends IDatePickerProps<IButtonComponentProps> {
    /**
     * default value
     * @default null
     */
    defaultValue?: Moment | null;
    onApply?(date: Moment | null): void;
    onChange?(date: Moment): void;
}
export default class DatePicker extends Component<Readonly<IProps>, Readonly<IState>> implements IBasePicker {
    static defaultProps: IProps;
    previousValue: Moment | null;
    constructor(props: IProps);
    componentDidUpdate(prevProps: Readonly<IProps>, prevState: Readonly<IState>): void;
    setPreviousValue: (value: moment.Moment | null) => void;
    close: () => void;
    switchIsOpened: () => void;
    goToNextDisplayByMonth: () => void;
    goToPrevDisplayByMonth: () => void;
    goToNextDisplayByYear: () => void;
    goToPrevDisplayByYear: () => void;
    _selectDate: (date: moment.Moment) => void;
    selectDate: (date: moment.Moment) => () => void;
    resetSelection: () => void;
    reset: () => void;
    cancel: () => void;
    apply: () => void;
    renderButton: () => React.ReactNode;
    get isOpened(): boolean;
    render(): JSX.Element;
}
export {};
//# sourceMappingURL=index.d.ts.map