import { CSSProperties, KeyboardEvent, ReactNode } from "react";
export declare type HourMinuteSecondText = {
    h: string;
    m: string;
    s: string;
};
export interface IPopupContent {
    onPickDate: (value: Date) => void;
    classNames?: string;
    locale?: object;
    withTime?: boolean;
    value: DatePickerDate;
    withHeader?: boolean;
    timeLabelText?: HourMinuteSecondText;
}
export interface IHourMinuteSecond {
    h: number;
    m: number;
    s: number;
}
export interface IWeekdays {
    weekdays: string[];
}
export interface IControl {
    locale?: object;
    date: DatePickerDate;
    handlePrevTime: VoidFunction;
    handleNextTime: VoidFunction;
}
export declare type DateObject = {
    date: DatePickerDate;
    classNames?: string;
};
export interface IDateInput {
    value: DatePickerDate;
    endValue?: DatePickerDate;
    disabled?: boolean;
    withTime?: boolean;
    onBlur: (value: string) => void;
    onKeyDown?: (e: KeyboardEvent<HTMLInputElement>) => void;
    iconBefore?: ReactNode;
    onRefInput?: RefType<HTMLInputElement>;
    label?: string;
    width?: string;
    onClick?: VoidFunction;
    onFocus?: VoidFunction;
    style?: CSSProperties;
    placeholder?: string;
    disableInputOnly?: boolean;
    isRange?: boolean;
    children?: ReactNode;
    readOnly?: boolean;
}
export declare type DatePickerDate = Date | undefined;
export interface IDatePickerProps {
    value: DatePickerDate;
    onChange: (value: Date) => void;
    withTime?: boolean;
    disabled?: boolean;
    selectsStart?: boolean;
    selectsEnd?: boolean;
    withHeader?: boolean;
    startDate?: DatePickerDate;
    endDate?: DatePickerDate;
    locale?: object;
    focus?: boolean;
    label?: string;
    width?: string | number;
    zIndex?: number;
    bottomBind?: boolean;
    onBlur?: VoidFunction;
    clickable?: boolean;
    prefix?: ReactNode;
    suffix?: ReactNode;
    placeholder?: string;
    className?: string;
}
export interface IHeader {
    withTime?: boolean;
    value: DatePickerDate;
    locale?: object;
    time: IHourMinuteSecond;
    height: string;
}
export interface IRangeHeader extends Omit<IHeader, "value" | "time"> {
    range: [DatePickerDate, DatePickerDate];
}
export interface ITime {
    time: IHourMinuteSecond;
    onChangeTime: (value: string, key: string) => void;
    saveDate?: VoidFunction;
    hasLabel?: boolean;
    disabled?: boolean;
    timeLabelText?: HourMinuteSecondText;
}
export interface ICalendarGridProps {
    classNames?: string;
    selectsStart?: string;
    selectsEnd?: string;
    enterDate?: string;
    locale?: object;
    date: DatePickerDate;
    value: DatePickerDate;
    onChangeDate: (date: DatePickerDate) => void;
    time: IHourMinuteSecond;
    withTime?: boolean;
}
export interface IDayProps {
    enterDate: DatePickerDate;
    onMouseEnter: (date: DatePickerDate) => void;
    weekdays: string[];
    selectsStart?: string;
    startDate?: DatePickerDate;
    endDate?: DatePickerDate;
    selectsEnd?: string;
    classNames?: string;
    value: DatePickerDate;
    date: DatePickerDate;
    onChangeDate: (date: DatePickerDate) => void;
    withTime?: boolean;
    time: IHourMinuteSecond;
}
