import { AfterViewInit, ElementRef, EventEmitter, Injector, NgZone, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { FlatpickrOptions } from './flatpickr-options.interface';
import { EvoBaseControl } from '../../common/evo-base-control';
import * as i0 from "@angular/core";
export * from './flatpickr-options.interface';
declare type SelectedDates = string[] | Date[];
export declare class EvoDatepickerComponent extends EvoBaseControl implements AfterViewInit, ControlValueAccessor, OnChanges, OnInit, OnDestroy {
    private zone;
    private elementRef;
    protected injector: Injector;
    flatpickrElement: ElementRef;
    config: FlatpickrOptions;
    maskedInput: boolean;
    theme?: string;
    folded: boolean;
    placeholder: string;
    setDate: SelectedDates;
    description: string;
    maxRangeDays: number;
    appendToBody: boolean;
    closePicker: EventEmitter<[Date, Date]>;
    disabled: boolean;
    uiState: {
        isOpen: boolean;
        isEmptyField: boolean;
    };
    elements: any;
    maskConfig: {
        mask: any;
        pattern?: string;
        max?: Date;
    };
    private flatpickr;
    constructor(zone: NgZone, elementRef: ElementRef, injector: Injector);
    get inputClass(): {
        [cssClass: string]: boolean;
    };
    get totalClasses(): string[];
    onChange: (value: any) => void;
    onTouched: () => void;
    writeValue(value: SelectedDates): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    propagateChange: (_: any) => void;
    handleMaskComplete(value: any): void;
    setDateFromInput(date: SelectedDates): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    initMask(): void;
    onDatepickerClick(event: MouseEvent): void;
    toggleDatepicker(): void;
    setDisabledState(state: boolean): void;
    isValueExist(): boolean;
    isRange(): boolean;
    shouldShowEmptyText(): boolean;
    getDefaultFlatpickrOptions(): FlatpickrOptions;
    getConfig(): {
        [x: string]: any;
        defaultDate?: Date | Date[];
        disable?: (string | Date)[];
        enable?: (string | Date)[];
        maxDate?: string | Date;
        minDate?: string | Date;
        utc?: boolean;
        allowInput?: boolean;
        allowInvalidPreload?: boolean;
        altFormat?: string;
        altInput?: boolean;
        altInputClass?: string;
        animate?: boolean;
        appendTo?: HTMLElement;
        ariaDateFormat?: string;
        autoFillDefaultTime?: boolean;
        clickOpens?: boolean;
        closeOnSelect?: boolean;
        conjunction?: string;
        dateFormat?: string;
        defaultHour?: number;
        defaultMinute?: number;
        defaultSeconds?: number;
        disableMobile?: boolean;
        enableSeconds?: boolean;
        enableTime?: boolean;
        errorHandler?: (e: Error) => void;
        formatDate?: (date: Date, format: string, locale: import("flatpickr/dist/types/locale").Locale) => string;
        getWeek?: (date: Date) => string | number;
        hourIncrement?: number;
        ignoredFocusElements?: HTMLElement[];
        inline?: boolean;
        locale?: import("flatpickr/dist/types/locale").key | Partial<import("flatpickr/dist/types/locale").CustomLocale>;
        maxTime?: import("flatpickr/dist/types/options").DateOption;
        minTime?: import("flatpickr/dist/types/options").DateOption;
        minuteIncrement?: number;
        mode?: "time" | "multiple" | "single" | "range";
        monthSelectorType?: "static" | "dropdown";
        nextArrow?: string;
        noCalendar?: boolean;
        now?: import("flatpickr/dist/types/options").DateOption;
        onChange?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onClose?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onDayCreate?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onDestroy?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onKeyDown?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onMonthChange?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onOpen?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onParseConfig?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onReady?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onValueUpdate?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onYearChange?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        onPreCalendarPosition?: import("flatpickr/dist/types/options").Hook | import("flatpickr/dist/types/options").Hook[];
        parseDate?: (date: string, format: string) => Date;
        plugins?: import("flatpickr/dist/types/options").Plugin<{}>[];
        position?: "auto" | "above" | "below" | ((self: import("flatpickr/dist/types/instance").Instance, customElement: HTMLElement) => void);
        positionElement?: Element;
        prevArrow?: string;
        shorthandCurrentMonth?: boolean;
        static?: boolean;
        showMonths?: number;
        time_24hr?: boolean;
        weekNumbers?: boolean;
        wrap?: boolean;
    };
    /**
     * Customization of the flatpickr's view to ui-kit state
     */
    private customizePicker;
    /**
     * Sets new state of the picker openness
     * @param state new state
     */
    private setOpenedState;
    private setEmptyFieldState;
    private addTimeSelectors;
    private saveTimeRangeElements;
    private onApply;
    private setTime;
    private updateLabelValues;
    private setTimeConstraints;
    private resetAllConstraints;
    private addListenersOnTimeSelectors;
    private onChangeTimeFrom;
    private handleSingleSelectedValueInRange;
    private onChangeTimeUntil;
    private updateTimeFieldsContent;
    private disableTimeUntilSelectors;
    private disableTimeFromSelectors;
    private setUntilTimeConstraint;
    private resetTimeIfNeed;
    private resetTime;
    private getSelectorVaulesAsString;
    private getSelectedFrom;
    private getSelectedUntil;
    private setRangeConstraints;
    private resetConstraints;
    private isRangeWithTime;
    private setEmptyFieldStateIfNeed;
    private updatePickerIfNeed;
    private getSelectedDatesWithDatePickerFormat;
    private toDatePickerFormat;
    /**
     * Substitution of icons
     */
    private changeNextIcon;
    private addDescriptionIfNeed;
    private isSameDate;
    private getSelectedIndexByMinutes;
    private resetTimeAfterOpen;
    private addConstraintsAfterOpen;
    static ɵfac: i0.ɵɵFactoryDeclaration<EvoDatepickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EvoDatepickerComponent, "evo-datepicker", never, { "config": "config"; "maskedInput": "maskedInput"; "theme": "theme"; "folded": "folded"; "placeholder": "placeholder"; "setDate": "setDate"; "description": "description"; "maxRangeDays": "maxRangeDays"; "appendToBody": "appendToBody"; }, { "closePicker": "closePicker"; }, never, never>;
}
