import { ElementRef, OnInit, AfterViewInit, AfterContentInit, EventEmitter } from '@angular/core';
import { FormControl, AbstractControl } from '@angular/forms';
import { StateData, UniState, UniControlType, UniComponentSettings, UniComponentConfig, FormChangeEvent, FormChangeSource } from './uni-date-time.common';
import { UniDateTimeService } from './uni-date-time.service';
import { Instance } from 'flatpickr/dist/types/instance';
import * as i0 from "@angular/core";
export declare class UniDateTimeComponent implements OnInit, AfterViewInit, AfterContentInit {
    dateTimeService: UniDateTimeService;
    isRequired: boolean;
    isReadonly: boolean;
    isDisabled: boolean;
    config: UniComponentConfig;
    settings: UniComponentSettings;
    customStrings?: {
        dateTimeCapturedInBackend?: string;
        dateCapturedInBackend?: string;
        timeCapturedInBackend?: string;
        currentDate?: string;
        selectDate?: string;
        currentTime?: string;
        selectTime?: string;
    };
    componentId?: string;
    abstractControl?: AbstractControl;
    dateControlName?: string;
    timeControlName?: string;
    dateTimeControlName?: string;
    valueChangedEventHandler: EventEmitter<{
        newValue: StateData;
        newState: UniState;
        controlType: UniControlType;
        source: FormChangeSource;
        event: FormChangeEvent;
        component: UniDateTimeComponent;
    }>;
    blurEventHandler: EventEmitter<{
        state: UniState;
        source: FormChangeSource;
        event: FormChangeEvent;
        component: UniDateTimeComponent;
    }>;
    dateIconClickEventHandler: EventEmitter<{
        state: UniState;
        event: FormChangeEvent;
        component: UniDateTimeComponent;
    }>;
    timeIconClickEventHandler: EventEmitter<{
        state: UniState;
        event: FormChangeEvent;
        component: UniDateTimeComponent;
    }>;
    state: UniState;
    errorMessage: string;
    customErrorMessages: {
        [errorType: string]: string;
    };
    strings?: {
        dateTimeCapturedInBackend?: string;
        dateCapturedInBackend?: string;
        timeCapturedInBackend?: string;
        currentDate?: string;
        selectDate?: string;
        currentTime?: string;
        selectTime?: string;
    };
    showLoadingSpinner: boolean;
    date?: Instance;
    time?: Instance;
    defaultDateFormat: string;
    defaultTimeFormat: string;
    defaultDateTimeFormat: string;
    dateControl?: FormControl<string | null>;
    timeControl?: FormControl<string | null>;
    dateTimeControl?: FormControl<string | null>;
    controls: {
        date?: FormControl<string | null>;
        time?: FormControl<string | null>;
        dateTime?: FormControl<string | null>;
    };
    errorMessages?: {
        date?: string;
        time?: string;
        dateTime?: string;
    };
    showDateTimeErrorMessage: boolean;
    prevSettings: UniComponentSettings;
    useBackendDateTimeForCurrentDateTime: boolean;
    minDateTime?: Date;
    minDateTimeStr?: string;
    minTime?: string;
    maxDateTime?: Date;
    maxDateTimeStr?: string;
    maxTime?: string;
    dateDiv: ElementRef;
    timedateDiv: ElementRef;
    dateTimeInput?: ElementRef;
    supportedLanguage: string;
    constructor(dateTimeService: UniDateTimeService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private onCalendarOpen;
    private addDaysContainerKeyboardHandler;
    ngAfterContentInit(): void;
    private populateSettings;
    private autoCorrectSettings;
    private populateConfig;
    populateStrings(): void;
    processInternalTokens(message: string, options?: {
        min?: string;
        max?: string;
    }): string;
    substituteTokens(value: string, keepIfAccepted: boolean): string;
    onBlurWithKey(key: string): void;
    onIconClick(iconType: string): void;
    processDateTimeValues(value: string | Date | undefined | null, isDate: boolean): {
        dateStr: string;
        timeStr: string;
        dateTimeObj: Date | undefined | null;
    };
    onDateTimeChange(value: string | Date | undefined | null, isDate: boolean, event: FormChangeEvent): void;
    assignSubAbstractControl(): void;
    private getControl;
    private assignMinMaxForPicker;
    getErrorTypeWithHighestPriority(abstractControl: AbstractControl): string;
    getDefaultErrorMessage(errorType: string, settings: UniComponentSettings): string;
    updateErrorDisplay(): void;
    markAsTouched(key?: string): void;
    private localize;
    localizeFormat(locale?: string, withSeconds?: boolean): void;
    getCombinedStyles(settings: UniComponentSettings | undefined): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<UniDateTimeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UniDateTimeComponent, "lf-uni-date-time", never, { "config": { "alias": "config"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; "customStrings": { "alias": "customStrings"; "required": false; }; "componentId": { "alias": "componentId"; "required": false; }; "abstractControl": { "alias": "abstractControl"; "required": false; }; "dateControlName": { "alias": "dateControlName"; "required": false; }; "timeControlName": { "alias": "timeControlName"; "required": false; }; "dateTimeControlName": { "alias": "dateTimeControlName"; "required": false; }; }, { "valueChangedEventHandler": "valueChangedEventHandler"; "blurEventHandler": "blurEventHandler"; "dateIconClickEventHandler": "dateIconClickEventHandler"; "timeIconClickEventHandler": "timeIconClickEventHandler"; }, never, ["[loading-spinner]", "[between-pickers]", "[loading-spinner]", "*"], false, never>;
}
