import { Moment } from 'moment';
import React from 'react';
import { CallBackFn } from '../helpers/interfaces';
export interface ILabels {
    apply: string;
    cancel: string;
    reset: string;
}
export interface IDatePickerProps<ButtonComponentProps> {
    /**
     * open state of picker
     */
    isOpened?: boolean;
    /**
     * labels for picker buttons
     * @default {
     *   apply: 'Apply',
     *   cancel: 'Cancel',
     *   reset: 'Reset',
     * }
     */
    labels?: ILabels;
    /**
     * type IButtonComponent<T> = (props: T) => React.ReactNode;
     */
    buttonComponent?: IButtonComponent<ButtonComponentProps>;
    /**
     * type IButtonComponent<T> = (props: T) => React.ReactNode;
     */
    children?: IButtonComponent<ButtonComponentProps>;
    /**
     * Appear/disappear animation duration. "animation-duration" css property format, i.e. '.5s', '200ms', '10s'
     * @default '.2s'
     */
    animationDuration?: string;
    /**
     * root div extra className (including button)
     */
    className?: string;
    /**
     * picker content extra className (picker window without button)
     */
    contentClassName?: string;
    /**
     * callback
     */
    onClose?(): void;
    /**
     * callback
     */
    onCancel?(): void;
    /**
     * callback
     */
    onReset?(): void;
}
export declare type IButtonComponent<T> = (props: T) => React.ReactNode;
export declare type SelectDate = (date: Moment) => CallBackFn;
export declare type BacklightDatesBetween = (dateFrom: Moment, dateTo: Moment) => void;
export interface IBasePicker {
    goToNextDisplayByMonth(): void;
    goToPrevDisplayByMonth(): void;
    goToNextDisplayByYear(): void;
    goToPrevDisplayByYear(): void;
    selectDate(date: Moment): void;
    resetSelection(): void;
    reset(): void;
    cancel(): void;
    apply(): void;
}
//# sourceMappingURL=interfces.d.ts.map