import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { DatetimeAdapter } from '@fundamental-ngx/core/datetime';
import { CalendarService } from '../calendar.service';
import { CalendarCurrent } from '../models/calendar-current';
import { CalendarYearGrid } from '../models/calendar-year-grid';
import { FdCalendarView } from '../types';
import * as i0 from "@angular/core";
/**
 * Internal use only.
 * Header of the calendar component.
 */
export declare class CalendarHeaderComponent<D> implements OnInit, OnChanges {
    private _changeDetRef;
    private _calendarService;
    private _dateTimeAdapter;
    /** Currently active view. Needed for a11y labels. */
    activeView: FdCalendarView;
    /** Currently displayed date on the calendar. */
    currentlyDisplayed: CalendarCurrent;
    /** whether previous navigation button should be disabled in the header. */
    previousButtonDisabled: boolean;
    /** whether next navigation button should be disabled in the header. */
    nextButtonDisabled: boolean;
    /**
     * Object to customize year grid
     */
    set calendarYearGrid(yearGrid: CalendarYearGrid);
    /** Calendar ID */
    id: string;
    /** Whether calendar should be rendered in mobile landscape mode. */
    mobileLandscape: boolean;
    /** Event emitted when the active view should change. */
    readonly activeViewChange: EventEmitter<FdCalendarView>;
    /** Event emitted when the previous button is clicked. */
    readonly previousClicked: EventEmitter<void>;
    /** Event emitted when the next button is clicked. */
    readonly nextClicked: EventEmitter<void>;
    /** @hidden */
    _prevButtonComponent: ElementRef;
    /** Aria label for the previous button. Depends on the active view. */
    get previousAriaLabel(): 'coreCalendar.previousMonthLabel' | 'coreCalendar.previousYearLabel';
    /** Aria label for the next button. Depends on the active view. */
    get nextAriaLabel(): 'coreCalendar.nextMonthLabel' | 'coreCalendar.nextYearLabel';
    /** Button aria label to open month selection view. */
    get selectMonthAriaLabel(): 'coreCalendar.monthSelectionLabel' | 'coreCalendar.dateSelectionLabel';
    /** Button aria label to open aggregated years selection view. */
    get selectAggregatedYearAriaLabel(): 'coreCalendar.yearsRangeSelectionLabel' | 'coreCalendar.dateSelectionLabel';
    /** Button label to open month selection view. */
    selectMonthLabel: string;
    /** Button label to open year selection view. */
    selectYearLabel: string;
    /** Button label to open aggregated years selection view. */
    selectAggregatedYearLabel: string;
    /** Get information is calendar is on aggregated years view */
    get isOnAggregatedYearsView(): boolean;
    /** Get information is calendar is on year view */
    get isOnYearView(): boolean;
    /** Get information is calendar is on month view */
    get isOnMonthView(): boolean;
    /** Get information is calendar is on day view */
    get isOnDayView(): boolean;
    /**
     * Component id
     */
    get viewId(): string;
    /**
     * @hidden
     * Previous button id
     */
    get _prevButtonId(): string;
    /**
     * @hidden
     * Next button id
     */
    get _nextButtonId(): string;
    /**
     * @hidden
     * Month label id
     */
    get _monthButtonLabelId(): string;
    /**
     * @hidden
     * Select month aria label id
     */
    get _selectMonthButtonAriaLabelId(): string;
    /**
     * @hidden
     * Year label id
     */
    get _yearButtonLabelId(): string;
    /**
     * @hidden
     * Select year aria label id
     */
    get _selectYearButtonAriaLabelId(): string;
    /**
     * @hidden
     * Years range label id
     */
    get _yearsRangeButtonLabelId(): string;
    /**
     * @hidden
     * Select years range aria label id
     */
    get _selectYearsRangeButtonAriaLabelId(): string;
    /** @hidden  */
    private readonly _destroyRef;
    /** Month names */
    private _monthNames;
    /** Get information about amount of years displayed at once on year view  */
    private _amountOfYearsPerPeriod;
    /** @hidden */
    constructor(_changeDetRef: ChangeDetectorRef, _calendarService: CalendarService, _dateTimeAdapter: DatetimeAdapter<D>);
    /** @hidden */
    ngOnChanges(changes: SimpleChanges): void;
    /** @hidden */
    ngOnInit(): void;
    /**
     * Focus on focusable control within the header
     */
    focus(): void;
    /** @hidden */
    _processViewChange(type: FdCalendarView, event?: MouseEvent): void;
    /** @hidden */
    private _listenToLocaleChanges;
    /** @hidden */
    private _calculateLabels;
    /** @hidden */
    private _calculateSelectMonthLabel;
    /** @hidden */
    private _calculateSelectYearLabel;
    /** @hidden */
    private _calculateSelectAggregatedYearLabel;
    /** @hidden */
    private _calculateMonthNames;
    /** @hidden */
    private _getYearName;
    /** @hidden */
    private _getNormalizedDate;
    static ɵfac: i0.ɵɵFactoryDeclaration<CalendarHeaderComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CalendarHeaderComponent<any>, "fd-calendar-header", never, { "activeView": { "alias": "activeView"; "required": false; }; "currentlyDisplayed": { "alias": "currentlyDisplayed"; "required": false; }; "previousButtonDisabled": { "alias": "previousButtonDisabled"; "required": false; }; "nextButtonDisabled": { "alias": "nextButtonDisabled"; "required": false; }; "calendarYearGrid": { "alias": "calendarYearGrid"; "required": false; }; "id": { "alias": "id"; "required": false; }; "mobileLandscape": { "alias": "mobileLandscape"; "required": false; }; }, { "activeViewChange": "activeViewChange"; "previousClicked": "previousClicked"; "nextClicked": "nextClicked"; }, never, never, true, never>;
}
