import React, { FocusEvent } from "react";
import { ITheme } from "../Pallette/themes";
import { ILocale } from "../Calendar/interfaces";
import { TInputSize, TViewTypeInput } from "../InputBase";
export declare type TPlaceholder = string | [string, string];
export interface IDatePickerProps {
    id?: string;
    idCalendar?: string;
    placeholder?: TPlaceholder;
    locale?: ILocale;
    isRangeMode?: boolean;
    minDate?: string;
    maxDate?: string;
    onChange?: (value: string) => void;
    value?: string;
    name?: string;
    onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
    onFocus?: (event: FocusEvent<HTMLInputElement>) => void;
    onBlur?: () => void;
    onCalendarOpen?: () => void;
    onCalendarClose?: () => void;
    onDateSelected?: (value: string) => void;
    isShowMask?: boolean;
    isAutoFill?: boolean;
    isAutoFocus?: boolean;
    isAutoSelect?: boolean;
    placeholderChar?: string;
    title?: string;
    iconLeft?: JSX.Element;
    iconRight?: JSX.Element;
    className?: string;
    isDisabled?: boolean;
    error?: string;
    testId?: string;
    width?: string;
    status?: "error" | "warning" | "success";
    size?: TInputSize;
    statusText?: string;
    isRequired?: boolean;
    isShowClearIcon?: boolean;
    isGuide?: boolean;
    isReadOnly?: boolean;
    viewType?: TViewTypeInput;
    onClear?: (event: React.MouseEvent<HTMLDivElement>) => void;
}
export interface IInputDateProps {
    placeholder?: TPlaceholder;
    value: string;
    toggleCalendar?: () => void;
    onDateChange?: (value: string) => void;
    isRangeMode?: boolean;
    error?: string;
    pipe?: (conformedValue: string, config: any) => false | string | {
        value: string;
        indexesOfPipedChars: number[];
    };
    onFocus?: (event: FocusEvent<HTMLInputElement>) => void;
    onBlur?: () => void;
    testId?: string;
}
export interface IStylesProps {
    theme: ITheme;
}
export declare enum MountedState {
    BEFORE = "BEFORE",
    CURRENT = "MOUNTED",
    AFTER = "AFTER"
}
export interface IStInputDate {
    isCalendarShown?: boolean;
}
