import { EventEmitter, AfterViewInit, OnChanges, OnDestroy, SimpleChanges, ElementRef, NgZone } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { DateTimePickerMode } from '../../enums/date-time-picker.enum';
import { DateTimeRange } from '../../models/date-time-range.model';
import * as i0 from "@angular/core";
export declare class DatetimerPickerComponent implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {
    private ngZone;
    label: string;
    mode: DateTimePickerMode;
    rangeSelection: boolean;
    minDate: Date | null;
    maxDate: Date | null;
    disabled: boolean;
    dateTimeChange: EventEmitter<DateTimeRange | Date | null>;
    pickerRoot: ElementRef<HTMLElement>;
    private static idCounter;
    private readonly uniqueId;
    inputId: string;
    buttonId: string;
    private innerValue;
    private instance;
    private loadInterval;
    private loadTimeout;
    private onChange;
    private onTouched;
    get dataMode(): string;
    get dataType(): string;
    get inputType(): string;
    get iconName(): string;
    get ariaLabel(): string;
    get placeholder(): string;
    constructor(ngZone: NgZone);
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private clearLoadTimer;
    writeValue(value: Date | DateTimeRange | null): void;
    registerOnChange(fn: (value: Date | DateTimeRange | null) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    private ensureCoreLoaded;
    private getCore;
    private initPicker;
    private buildDefaultDate;
    private setPickerValue;
    private handleSelection;
    private destroyPicker;
    private isDateTimeRange;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatetimerPickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatetimerPickerComponent, "cfc-datetimer-picker", never, { "label": { "alias": "label"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "rangeSelection": { "alias": "rangeSelection"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "dateTimeChange": "dateTimeChange"; }, never, never, false, never>;
}
