import { OnInit, OnChanges, OnDestroy, ElementRef, Renderer2, EventEmitter, ChangeDetectorRef, TemplateRef, SimpleChanges } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { DatePickerConfigService as DatePickerConfig } from './date-picker.config.service';
import { DateConverter } from '@duoduo-oba/ng-devui/utils';
import { SelectDateChangeEventArgs } from './date-change-event-args.model';
import { I18nService, I18nInterface } from '@duoduo-oba/ng-devui/i18n';
import { Subscription } from 'rxjs';
export declare class DatepickerComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {
    protected elementRef: ElementRef;
    protected renderer2: Renderer2;
    protected datePickerConfig: DatePickerConfig;
    protected changeDetectorRef: ChangeDetectorRef;
    protected i18n: I18nService;
    static DAY_DURATION: number;
    protected _maxDate: Date;
    protected _minDate: Date;
    protected nowMinYear: number;
    protected nowMaxYear: number;
    protected _dateFormat: string;
    showTime: boolean;
    cssClass: string;
    dateConverter: DateConverter;
    locale: string;
    selectedDateChange: EventEmitter<SelectDateChangeEventArgs>;
    disabled: boolean;
    yearNumber: number;
    customViewTemplate: TemplateRef<any>;
    selectedDate: Date;
    _dateConfig: any;
    currentYear: number;
    currentMonth: number;
    currentHour: number;
    currentMinute: number;
    currentSecond: number;
    hourOptions: string[];
    minuteOptions: string[];
    displayWeeks: any[];
    yearOptions: number[];
    openChooseYearAndMonth: boolean;
    hoverYear: number;
    hoverMonth: number;
    availableMonths: number[];
    i18nText: I18nInterface['datePicker'];
    i18nLocale: I18nInterface['locale'];
    i18nCommonText: I18nInterface['common'];
    i18nSubscription: Subscription;
    protected onChange: (_: any) => any;
    protected onTouched: () => any;
    constructor(elementRef: ElementRef, renderer2: Renderer2, datePickerConfig: DatePickerConfig, changeDetectorRef: ChangeDetectorRef, i18n: I18nService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onDocumentClick($event: any): void;
    onClick($event: any): void;
    dateConfig: any;
    checkDateConfig(dateConfig: any): boolean;
    minDate: Date | any;
    maxDate: Date | any;
    dateFormat: string;
    protected resetYearOptions(): void;
    onYearRangeChange(): void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    hasPreMonth(): boolean;
    onPreMonth(): void;
    hasNextMonth(): boolean;
    onNextMonth(currentDate?: Date, invocation?: any): void;
    hasPreYearOption(): boolean;
    onPreYearOption(): void;
    hasNextYearOption(): boolean;
    onNextYearOption(): void;
    onSelectYear(year: any, $event?: Event): void;
    protected onSelectDateChanged(): void;
    onDisplayWeeksChange(): void;
    onDisplayMonthsChange(): any[];
    protected fillLeft(num: number): string;
    isDisabledDay(date: any): boolean;
    isSelectDay(date: any): boolean;
    onSelectDate($event: any, date: any, invocation?: any): void;
    onTimeChange(): void;
    timeUp(type: any): void;
    timeDown(type: any): void;
    clearAll: () => void;
    toggle($event: Event): void;
    isTodayDisable(): boolean;
    isDisabledTime(): boolean;
    initDatePicker(): void;
    confirmTime(event: any): void;
    chooseToday(): void;
    onSelectMonth($index: any): void;
    changeHoverYear(item: number): void;
    changeHoverMonth(item: number): void;
    chooseDate: (date: string, event?: {}) => void;
    readonly minDateDefined: boolean;
    readonly maxDateDefined: boolean;
    setI18nText(): void;
    ngOnDestroy(): void;
}
