import { AxiosInstance } from "axios";
import { EnumValidateState } from "../../enums";
import { ElementFactory } from "../../Page/ElementsOfFormFactory/ElementFactory";
import { IMainStateFactory } from "../../Types";
export type IResultOfValidate = true | [string, EnumValidateState];
export type IDatePickerState = 'clear' | 'ok' | 'dirty';
type ITextState = 'miladi' | 'shamsi';
export declare class DateBoxFactory extends ElementFactory {
    #private;
    required: boolean;
    showHasChangeFlag: boolean;
    caption?: string | undefined;
    tabIndex?: number | undefined;
    onChange?: ((dateBoxFactory: DateBoxFactory) => void) | undefined;
    forceUpdate: () => void;
    readonly?: boolean;
    dirLeftToRight?: boolean;
    get any(): any;
    showDatePicker?: () => void;
    focusToElement: () => void;
    validation: IResultOfValidate;
    validationState: IDatePickerState;
    minDate: string | undefined;
    maxDate: string | undefined;
    private validateNormal;
    private validateRequired;
    private validateMinDate;
    private validateMaxDate;
    isValueEmpty: () => boolean;
    isValueNotEmpty: () => boolean;
    validate: () => void;
    currentTextState: ITextState;
    changeCurrentTextState: () => void;
    get text(): string;
    set text(v: string);
    get defaultValue(): string | null;
    restartDefaultValue: () => void;
    refreshHasChange: () => void;
    get value(): string;
    setValue(value: string): void;
    deseriallize: (e?: string | null) => void;
    clearData: () => void;
    placeHolder: string;
    constructor(_mainStateFactory: IMainStateFactory, _fieldName: string, _dispose: () => void, required: boolean, showHasChangeFlag: boolean, caption?: string | undefined, _placeHolder?: string, tabIndex?: number | undefined, initialValue?: string, payLoadKey?: string, responseKey?: string, history?: {
        key: string;
        axios: (controllerPath: string) => AxiosInstance;
        controllerPath: string;
        actionPath?: string;
    }, onChange?: ((dateBoxFactory: DateBoxFactory) => void) | undefined);
    changeHandler: (element: HTMLInputElement) => void;
}
export {};
