import { OnInit, ElementRef, ViewContainerRef, EventEmitter, ComponentFactoryResolver, Renderer2, Injector, TemplateRef, OnDestroy } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { DateConverter } from '@duoduo-oba/ng-devui/utils';
import { SelectDateChangeEventArgs } from './date-change-event-args.model';
import { DatePickerConfigService as DatePickerConfig } from './date-picker.config.service';
import { I18nService } from '@duoduo-oba/ng-devui/i18n';
import { AnimationBuilder } from '@angular/animations';
export declare class DatepickerDirective implements OnInit, OnDestroy, ControlValueAccessor {
    private elementRef;
    private viewContainerRef;
    private componentFactoryResolver;
    private renderer2;
    private injector;
    private datePickerConfig;
    private i18n;
    private builder;
    dateConfig: any;
    dateFormat: string;
    maxDate: Date | any;
    minDate: Date | any;
    locale: string;
    showTime: boolean;
    cssClass: string;
    disabled: boolean;
    dateConverter: DateConverter;
    yearNumber: number;
    direction: 'up' | 'down';
    customViewTemplate: TemplateRef<any>;
    autoOpen: boolean;
    selectedDateChange: EventEmitter<SelectDateChangeEventArgs>;
    selectedDate: Date;
    isOpen: boolean;
    _dateConfig: any;
    private _dateFormat;
    private _maxDate;
    private _minDate;
    private cmpRef;
    private player;
    private inputSub;
    private i18nSubscription;
    private i18nLocale;
    private onChange;
    private onTouched;
    constructor(elementRef: ElementRef, viewContainerRef: ViewContainerRef, componentFactoryResolver: ComponentFactoryResolver, renderer2: Renderer2, injector: Injector, datePickerConfig: DatePickerConfig, i18n: I18nService, builder: AnimationBuilder);
    ngOnInit(): void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    private setI18nText;
    private parseDateFunc;
    private applyPopupStyling;
    hide(): void;
    private writeModelValue;
    show(): void;
    toggle($event: Event): void;
    private fillPopupData;
    onBlur($event: any): void;
    onDocumentClick($event: any): void;
    clearAll(): void;
    private popIn;
    private popOut;
    private playAnimation;
    private transUserInputToDatepicker;
    ngOnDestroy(): void;
}
