import { PluginObject } from 'vue';
import { ModulVue } from '../../utils/vue/vue';
import { MBaseCalendarType, MBaseCalendarView } from '../calendar/calendar-renderer/base-calendar/base-calendar';
import { InternalCleaveOptions, MInputMask } from '../input-mask/input-mask';
export declare type DatePickerSupportedTypes = Date | string | undefined;
export declare enum MDatepickerDefaultView {
    Month = "month",
    Day = "day"
}
export declare class MDatepicker extends ModulVue {
    readonly value: DatePickerSupportedTypes;
    readonly label: string;
    readonly initialView: MBaseCalendarView;
    readonly type: MBaseCalendarType;
    readonly min: DatePickerSupportedTypes;
    readonly max: DatePickerSupportedTypes;
    readonly placeholder: string;
    readonly maxWidth: string;
    readonly hideInternalErrorMessage: boolean;
    readonly skipInputValidation: boolean;
    readonly ariaDescribedby: string;
    readonly id: string;
    readonly validationMessageId: string;
    $refs: {
        input: MInputMask;
    };
    private internalOpen;
    private internalCalendarErrorMessage;
    private inputModel;
    private internalDateModel;
    protected created(): void;
    get inputOptions(): InternalCleaveOptions;
    get isTypeYearsMonths(): boolean;
    get propPlaceholder(): string;
    get formattedDate(): string;
    get hasCalandarError(): boolean;
    get calandarErrorMessage(): string;
    get open(): boolean;
    set open(open: boolean);
    get minDateString(): string;
    get maxDateString(): string;
    private get minModulDate();
    private get maxModulDate();
    private get maxInputLenght();
    private get isLessThanTablet();
    onOpen(): Promise<void>;
    onClose(): Promise<void>;
    private emitBlur;
    private emitClick;
    private emitKeydown;
    private onSkipInputValidationChangement;
    selectDate(selectedDate: DatePickerSupportedTypes): Promise<void>;
    inputDate(inputValue: string): void;
    private onValueChange;
    set model(value: string);
    get model(): string;
    get hasValue(): boolean;
    togglePopup(event: Event): void;
    emitChange(): void;
    onKeydown(event: KeyboardEvent): void;
    get hasErrorMessage(): boolean;
    onFocus(event: FocusEvent): void;
    onClick(event: MouseEvent): void;
    onBlur(event: Event): void;
    get isFocus(): boolean;
    private convertValueToModel;
    private validateDateFormat;
    private convertStringToModel;
    private convertModelToString;
    private clearErrorMessage;
    private showErrorMessage;
}
declare const DatepickerPlugin: PluginObject<any>;
export default DatepickerPlugin;
//# sourceMappingURL=datepicker.d.ts.map