import { CdkVirtualScrollViewport, ScrollDispatcher } from '@angular/cdk/scrolling';
import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { Subject, Subscription } from 'rxjs';
import { DatepickerProCommonDataService, DatepickerProService } from '../datepicker-pro.service';
import { DevuiCalendarDateItem } from './datepicker-pro.type';
import * as i0 from "@angular/core";
export declare class CalendarPanelComponent implements OnInit, OnDestroy {
    protected i18n: I18nService;
    private pickerSrv;
    private dataSrv;
    private cdr;
    private scrollDispatcher;
    scrollBodyCmp: CdkVirtualScrollViewport;
    scrollListCmp: CdkVirtualScrollViewport;
    isRangeType: boolean;
    isWeekSelect: boolean;
    currentBodyIndex: number;
    today: Date;
    calendarItemSize: number;
    i18nText: I18nInterface['datePickerPro'];
    i18nSubscription: Subscription;
    unsubscribe$: Subject<void>;
    allMonthList: any[];
    yearAndMonthList: any[];
    scrollListener: Subscription;
    isListCollopse: boolean;
    weekHoverRange: any[];
    curWeekHoverDate: Date;
    get curHoverDate(): Date;
    set curHoverDate(value: Date);
    get curDate(): Date;
    set curDate(value: Date);
    get selectedRangeDate(): Date[];
    set selectedRangeDate(dateList: Date[]);
    get markDateTemplate(): import("@angular/core").TemplateRef<any>;
    constructor(i18n: I18nService, pickerSrv: DatepickerProService, dataSrv: DatepickerProCommonDataService, cdr: ChangeDetectorRef, scrollDispatcher: ScrollDispatcher);
    setI18nText(): void;
    ngOnInit(): void;
    private initObservable;
    private initScrollListener;
    private initDataList;
    private getDisplayWeeks;
    private goToDate;
    private goToListByIndex;
    selectMonth(year: number, month: number): void;
    updateRangeDate(dateList: Date[]): void;
    updateSingleDate(date: Date): void;
    updateListActive(index: number): void;
    getCurrentIndex(curDate: Date): {
        bodyIndex: number;
        listIndex: number;
    };
    selectDate(day: DevuiCalendarDateItem): void;
    isStartDate(date: Date): boolean;
    isDisabled(date: Date): boolean;
    isEndDate(date: Date): boolean;
    isDateInRange(date: Date): boolean;
    isDateInSelectRange(date: Date): boolean;
    isDateActive(date: Date): boolean;
    isActiveTypeDate(date: Date): boolean;
    isDateAbandon(date: Date): boolean;
    isDateSuggest(date: Date): boolean;
    isDateMarked(date: Date): boolean;
    isSingleDate(): boolean;
    setHoverTarget(date: Date, isInMonth: boolean): void;
    getWeekRange(date: Date): Date[];
    isInWeekHoverRange(date: Date): boolean;
    toggleListCollopse(toDate?: Date): void;
    protected fillLeft(num: number): string;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CalendarPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CalendarPanelComponent, "d-calendar-panel", never, { "isRangeType": "isRangeType"; "isWeekSelect": "isWeekSelect"; }, {}, never, never, false>;
}
