import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { I18nService } from 'ng-devui/i18n';
import { DefaultDateConverter } from 'ng-devui/utils';
import { Subject } from 'rxjs';
import { DatepickerProService } from './datepicker-pro.service';
import * as i0 from "@angular/core";
export declare class DatepickerProCalendarComponent implements OnInit, AfterViewInit, OnDestroy {
    pickerSrv: DatepickerProService;
    private i18n;
    set activeRangeType(type: 'start' | 'end');
    get curActiveDate(): Date;
    set currentActiveInput(value: 'start' | 'end');
    get currentActiveInput(): 'start' | 'end';
    get dateValue(): string[];
    set dateValue(value: string[]);
    get curFormat(): string;
    isRangeType: boolean;
    showTime: boolean;
    mode: 'year' | 'month' | 'date' | 'week';
    startIndexOfWeek: number;
    splitter: string;
    showRangeHeader: boolean;
    placeholder: string[];
    allowClear: boolean;
    set minDate(value: Date);
    set maxDate(value: Date);
    set markedRangeDateList(value: Date[][]);
    set markedDateList(value: Date[]);
    confirmEvent: EventEmitter<Date | Date[]>;
    cancelEvent: EventEmitter<void>;
    customTemplate: TemplateRef<any>;
    footerTemplate: TemplateRef<any>;
    set markDateInfoTemplate(tmp: TemplateRef<any>);
    datepickerInputStart: ElementRef;
    datepickerInputEnd: ElementRef;
    strWidth: number;
    _dateValue: any[];
    i18nText: any;
    i18nFormat: any;
    datepickerConvert: DefaultDateConverter;
    unsubscribe$: Subject<void>;
    private i18nLocale;
    private onChange;
    private onTouched;
    constructor(pickerSrv: DatepickerProService, i18n: I18nService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private setI18nText;
    private setI18nTextDetail;
    updateCurPosition(): void;
    clear(event?: MouseEvent): void;
    private initSrvStatus;
    private formatDateToString;
    private initObservable;
    focusChange(type: 'start' | 'end'): void;
    isSameDateAndTimeWrong(): boolean;
    writeValue(value: Date | Date[]): void;
    writeRangeValue(value: Date[]): void;
    writeSingleValue(value: Date): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    ngOnDestroy(): void;
    getStrWidth(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatepickerProCalendarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatepickerProCalendarComponent, "d-datepicker-calendar", never, { "activeRangeType": { "alias": "activeRangeType"; "required": false; }; "isRangeType": { "alias": "isRangeType"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "startIndexOfWeek": { "alias": "startIndexOfWeek"; "required": false; }; "splitter": { "alias": "splitter"; "required": false; }; "showRangeHeader": { "alias": "showRangeHeader"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "allowClear": { "alias": "allowClear"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "markedRangeDateList": { "alias": "markedRangeDateList"; "required": false; }; "markedDateList": { "alias": "markedDateList"; "required": false; }; }, { "confirmEvent": "confirmEvent"; "cancelEvent": "cancelEvent"; }, ["customTemplate", "footerTemplate", "markDateInfoTemplate"], never, false, never>;
}
