import { ConnectedOverlayPositionChange, ConnectedPosition, VerticalConnectionPos } from '@angular/cdk/overlay';
import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { AppendToBodyDirection, DateConverter } from 'ng-devui/utils';
import { Observable } from 'rxjs';
import { SelectDateChangeEventArgs, SelectDateChangeReason } from './date-change-event-args.model';
import { DatePickerConfigService as DatePickerConfig } from './date-picker.config.service';
import * as i0 from "@angular/core";
export declare class DatePickerAppendToBodyComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {
    private elementRef;
    private viewContainerRef;
    private renderer2;
    private datePickerConfig;
    private i18n;
    private cdr;
    private doc;
    appendToBodyDirections: Array<AppendToBodyDirection | ConnectedPosition>;
    locale: string;
    cssClass: string;
    disabled: boolean;
    dateConverter: DateConverter;
    customViewTemplate: TemplateRef<any>;
    autoOpen: boolean;
    showAnimation: boolean;
    selectedDateChange: EventEmitter<SelectDateChangeEventArgs>;
    selectedDate: Date;
    _isOpen: boolean;
    _dateConfig: any;
    positions: ConnectedPosition[];
    datepickerPosition: VerticalConnectionPos;
    startAnimation: boolean;
    private _dateFormat;
    private _maxDate;
    private _minDate;
    private _showTime;
    private valueChanges;
    private userInputSubscription;
    private i18nSubscription;
    i18nLocale: I18nInterface['locale'];
    cdkConnectedOverlayOrigin: any;
    document: Document;
    private onChange;
    private onTouched;
    set showTime(showTime: boolean);
    get showTime(): boolean;
    set dateConfig(dateConfig: any);
    get dateConfig(): any;
    set dateFormat(dateFormat: string);
    get dateFormat(): string;
    set maxDate(date: Date | any);
    get maxDate(): Date | any;
    set minDate(date: Date | any);
    get minDate(): Date | any;
    set isOpen(open: boolean);
    get isOpen(): boolean;
    constructor(elementRef: ElementRef, viewContainerRef: ViewContainerRef, renderer2: Renderer2, datePickerConfig: DatePickerConfig, i18n: I18nService, cdr: ChangeDetectorRef, doc: any);
    onBlur($event: any): void;
    checkDateConfig(dateConfig: any): boolean;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    registerInputEvent(): Observable<any>;
    writeValue(obj: any): void;
    setI18nText(): void;
    timeChange(dateObj: any): void;
    updateCdkConnectedOverlayOrigin(): void;
    toggle(clickShow?: boolean): void;
    hide(): void;
    show(): void;
    private writeModelValue;
    onDocumentClick: ($event: any) => void;
    onPositionChange(position: ConnectedOverlayPositionChange): void;
    setPositions(): void;
    private transUserInputToDatepicker;
    validateDate(value: string): boolean;
    resetValue(): void;
    clearAll: (reason?: SelectDateChangeReason) => void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerAppendToBodyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerAppendToBodyComponent, "[dDatepicker][appendToBody]", ["datepicker"], { "appendToBodyDirections": { "alias": "appendToBodyDirections"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dateConverter": { "alias": "dateConverter"; "required": false; }; "customViewTemplate": { "alias": "customViewTemplate"; "required": false; }; "autoOpen": { "alias": "autoOpen"; "required": false; }; "showAnimation": { "alias": "showAnimation"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "dateConfig": { "alias": "dateConfig"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; }, { "selectedDateChange": "selectedDateChange"; }, never, never, false, never>;
}
