import { AfterViewInit, ChangeDetectorRef, Injector, NgZone, OnDestroy } from '@angular/core';
import { App, AppDefaults } from '@wm/core';
import { BaseDateTimeComponent } from './../base-date-time.component';
import * as i0 from "@angular/core";
export declare class DatetimeComponent extends BaseDateTimeComponent implements AfterViewInit, OnDestroy {
    private ngZone;
    private cdRef;
    private appDefaults;
    static initializeProps: void;
    /**
     * The below propeties prefixed with "bs" always holds the value that is selected from the datepicker.
     * The bsDateTimeValue = bsDateValue + bsTimeValue.
     */
    private bsDateTimeValue;
    bsDateValue: any;
    private bsTimeValue;
    private proxyModel;
    private app;
    hint: string;
    arialabel: string;
    showdropdownon: string;
    private deregisterDatepickerEventListener;
    private deregisterTimepickeEventListener;
    private isEnterPressedOnDateInput;
    private focusTrap;
    get timestamp(): any;
    get dateInputFormat(): string;
    /**
     * The displayValue is the display value of the bsDateTimeValue after applying the datePattern on it.
     * @returns {any|string}
     */
    get displayValue(): any;
    get nativeDisplayValue(): any;
    bsDatePickerDirective: any;
    /**
     * This property checks if the timePicker is Open
     */
    isTimeOpen: boolean;
    /**
     * This property checks if the datePicker is Open
     */
    isDateOpen: boolean;
    /**
     * This timeinterval is used to run the timer when the time component value is set to CURRENT_TIME in properties panel.
     */
    private timeinterval;
    /**
     * This property is set to TRUE if the time component value is set to CURRENT_TIME; In this case the timer keeps changing the time value until the widget is available.
     */
    isCurrentDate: boolean;
    private _debouncedOnChange;
    private dateContainerCls;
    get datavalue(): any;
    /**Todo[Shubham]: needs to be redefined
     * This property sets the default value for the date selection
     */
    set datavalue(newVal: any);
    constructor(inj: Injector, ngZone: NgZone, cdRef: ChangeDetectorRef, appDefaults: AppDefaults, app: App, explicitContext: any);
    /**
     * This is an internal method used to maintain a time interval to update the time model when the data value is set to CURRENT_TIME
     */
    private setTimeInterval;
    /**
     * This is an internal method used to clear the time interval created
     */
    private clearTimeInterval;
    /**
     * This is an internal method to toggle the time picker
     */
    toggleTimePicker(newVal: any, $event?: any): void;
    private addTimepickerClickListener;
    /**
     * This function sets the value isOpen/isTimeOpen (i.e when datepicker popup is closed) based on widget type(i.e  DateTime, Time)
     * @param val - isOpen/isTimeOpen is set based on the timepicker popup is open/closed
     */
    private setIsTimeOpen;
    private hideTimepickerDropdown;
    /**
     * This is an internal method to add a click listener once the time dropdown is open
     */
    onTimepickerOpen(): void;
    onDatePickerOpen(): void;
    /**
     * This is an internal method to update the model
     */
    onModelUpdate(newVal: any, type?: any): void;
    private getTimePattern;
    private updateTimepickerFields;
    /**
     * This is an internal method used to Prevent time picker close while changing time value
     */
    private preventTpClose;
    /**
     * This is an internal method used to toggle the dropdown of the date widget
     */
    toggleDpDropdown($event: any, skipFocus?: boolean): void;
    private addBodyClickListener;
    hideDatepickerDropdown(): void;
    onDateChange($event: any, isNativePicker?: boolean): void;
    /**
     * This is an internal method triggered when pressing key on the datetime input
     */
    onDisplayKeydown(event: any): void;
    private isValid;
    protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any): void;
    onInputBlur($event: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatetimeComponent, [null, null, null, null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatetimeComponent, "[wmDateTime]", never, {}, {}, never, never, false, never>;
}
