import { OnChanges, OnInit, EventEmitter, TemplateRef, ChangeDetectorRef, SimpleChanges, ElementRef } from '@angular/core';
import { Subject } from 'rxjs';
export declare class PoCalendarWrapperComponent implements OnInit, OnChanges {
    private poCalendarService;
    private poCalendarLangService;
    private poDate;
    readonly cdr: ChangeDetectorRef;
    readonly elementRef: ElementRef<any>;
    value: any;
    mode: 'day' | 'month' | 'year';
    responsive: boolean;
    partType: 'start' | 'end';
    range: boolean;
    activateDate: Date;
    selectedValue: any;
    minDate: any;
    maxDate: any;
    hoverValue: Date;
    size: string;
    headerTemplate?: TemplateRef<any>;
    private _locale;
    set locale(value: string);
    get locale(): string;
    headerChange: EventEmitter<any>;
    selectDate: EventEmitter<any>;
    readonly hoverDateSource: Subject<Date>;
    hoverDate: import("rxjs").Observable<Date>;
    closeCalendar: EventEmitter<void>;
    currentYear: number;
    displayYear: number;
    displayMonthNumber: number;
    displayMonth: string;
    displayDays: Array<Date>;
    displayWeekDays: Array<string>;
    displayMonths: Array<string>;
    displayDecade: Array<number>;
    displayStartDecade: number;
    displayFinalDecade: number;
    displayToday: string;
    displayToClean: string;
    today: Date;
    comboMonthsOptions: Array<{
        label: string;
        value: number;
    }>;
    comboYearsOptions: Array<{
        label: string;
        value: number;
    }>;
    comboKey: number;
    focusedDayIndex: number;
    templateContext: any;
    protected currentMonthNumber: number;
    protected lastDisplay: string;
    get monthLabel(): any;
    get yearLabel(): any;
    get isDayVisible(): boolean;
    get isMonthVisible(): boolean;
    get isYearVisible(): boolean;
    get isStartPart(): boolean;
    get isEndPart(): boolean;
    private get date();
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private getDateToUse;
    private initializeData;
    private setupOptions;
    onHeaderDateChange(event: {
        year: number;
        month: number;
    }): void;
    private updateTemplateContext;
    updateDate(year: number, month: number, comboComponent?: any): void;
    onComboBlur(comboComponent?: any): void;
    private updateDisplay;
    private setInitialFocusedDay;
    private ensureValidFocusedDay;
    getDayTabIndex(day: Date, index: number): number;
    onNextMonth(): void;
    onPreviousMonth(): void;
    updateYear(value: number): void;
    onSelectMonth(year: number, month: number): void;
    onSelectYear(year: number, month: number): void;
    selectDisplayMode(mode: 'month' | 'day' | 'year'): void;
    onSelectDate(date: Date): void;
    onMouseEnter(day: any): void;
    onMouseLeave(): void;
    onSelectToday(): void;
    onTodayKeydown(event: KeyboardEvent): void;
    onHostKeydown(event: KeyboardEvent): void;
    private restoreOriginalDisplay;
    onTodayKeydownEnter(event: KeyboardEvent): void;
    onTodayKeydownSpace(event: KeyboardEvent): void;
    onDayKeydown(event: KeyboardEvent, day: Date, index: number): void;
    private isSelectionKey;
    private handleSelectKey;
    private handleNavigationKey;
    private getNextNavigationIndex;
    private getFirstAvailableDayInWeek;
    private getLastAvailableDayInWeek;
    private getNavigationDirection;
    private findNextAvailableDay;
    private handlePageNavigation;
    private hasAvailableDaysInMonth;
    private applyPageNavigation;
    private focusElement;
    private focusOnSameDayAndWeek;
    private queryDayElement;
    private findTargetDayIndex;
    private isValidCalendarDate;
    onClear(): void;
    getDayBackgroundColor(date: Date): string;
    getDayForegroundColor(date: Date): string;
    getBackgroundColor(displayValue: number, propertyValue: number): "po-calendar-box-background-selected" | "po-calendar-box-background";
    getForegroundColor(displayValue: number, propertyValue: number): "po-calendar-box-foreground-selected" | "po-calendar-box-foreground";
    isTodayUnavailable(): boolean;
    isDayDisabled(date: Date): boolean;
    private getDayColor;
    private getRangeColor;
    getColorForDate(date: Date, type: 'background' | 'foreground'): string;
    getColorForDefaultDate(date: Date, type: 'background' | 'foreground'): string;
    getColorForToday(date: Date, type: 'background' | 'foreground'): string;
    getColorForDateRange(date: Date, type: 'background' | 'foreground'): string;
    getColorState(date: Date, prefix: string, state: string): string;
    private equalsDate;
    private getDecadeArray;
    private updateDecade;
    private addAllYearsInDecade;
    trackByYear(index: number, year: number): number;
    trackByMonth(index: number, month: string): number;
    trackByDay(index: number, day: Date): string;
    trackByWeekDay(index: number, weekDay: string): string;
}
