import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { I18nService } from 'ng-devui/i18n';
import { DefaultDateConverter, DevConfigService } from 'ng-devui/utils';
import { Subject } from 'rxjs';
import { DatepickerProService } from './datepicker-pro.service';
import { DateConfig } from './lib/datepicker-pro.type';
import * as i0 from "@angular/core";
export declare class DatepickerProComponent implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor {
    private i18n;
    private pickerSrv;
    private devConfigService;
    mode: 'year' | 'month' | 'date';
    showTime: boolean;
    disabled: boolean;
    autoOpen: boolean;
    format: string;
    cssClass: string;
    showAnimation: boolean;
    appendToBody: boolean;
    width: string;
    placeholder: string;
    allowClear: boolean;
    dropdownToggle: EventEmitter<boolean>;
    confirmEvent: EventEmitter<Date>;
    showGlowStyle: boolean;
    get hasGlowStyle(): boolean;
    set calenderRange(value: any);
    set minDate(value: Date);
    set maxDate(value: Date);
    set markedRangeDateList(value: Date[][]);
    set markedDateList(value: Date[]);
    customTemplate: TemplateRef<any>;
    footerTemplate: TemplateRef<any>;
    hostTemplate: TemplateRef<any>;
    set markDateInfoTemplate(tmp: TemplateRef<any>);
    datepickerInput: ElementRef;
    private i18nLocale;
    i18nText: any;
    i18nFormat: any;
    dateValue: string;
    datepickerConvert: DefaultDateConverter;
    unsubscribe$: Subject<void>;
    isOpen: boolean;
    get dateConfig(): DateConfig;
    get curFormat(): string;
    private onChange;
    private onTouched;
    constructor(i18n: I18nService, pickerSrv: DatepickerProService, devConfigService: DevConfigService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private initSrvStatus;
    private initObservable;
    private setI18nText;
    private setI18nTextDetail;
    validateDate(value: string): boolean;
    formatDateToString(date: Date): string;
    clear(event?: MouseEvent, isHandle?: boolean): void;
    onToggle(isOpen: any): void;
    openDropdown(event: Event): void;
    writeValue(value: Date): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatepickerProComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatepickerProComponent, "d-datepicker-pro", never, { "mode": { "alias": "mode"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "autoOpen": { "alias": "autoOpen"; "required": false; }; "format": { "alias": "format"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "showAnimation": { "alias": "showAnimation"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "width": { "alias": "width"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "allowClear": { "alias": "allowClear"; "required": false; }; "showGlowStyle": { "alias": "showGlowStyle"; "required": false; }; "calenderRange": { "alias": "calenderRange"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "markedRangeDateList": { "alias": "markedRangeDateList"; "required": false; }; "markedDateList": { "alias": "markedDateList"; "required": false; }; }, { "dropdownToggle": "dropdownToggle"; "confirmEvent": "confirmEvent"; }, ["customTemplate", "footerTemplate", "hostTemplate", "markDateInfoTemplate"], never, false, never>;
}
