import { AfterContentInit, EventEmitter } from '@angular/core';
import { DateAdapter } from '@koobiq/components/core';
import * as i0 from "@angular/core";
export type MonthName = {
    name: string;
    nameShort: string;
    value: number;
    disabled: boolean;
};
/** Default header for KbqCalendar */
export declare class KbqCalendarHeader<D> implements AfterContentInit {
    private readonly adapter;
    monthNames: MonthName[];
    selectedMonth: number;
    years: number[];
    selectedYear: number;
    get activeDate(): D;
    set activeDate(value: D);
    private _activeDate;
    get maxDate(): D | null;
    set maxDate(value: D | null);
    private _maxDate;
    get minDate(): D | null;
    set minDate(value: D | null);
    private _minDate;
    get previousDisabled(): boolean;
    get currentDisabled(): boolean;
    get nextDisabled(): boolean;
    /** Emits when any date is activated. */
    readonly activeDateChange: EventEmitter<D>;
    readonly monthSelected: EventEmitter<D>;
    readonly yearSelected: EventEmitter<D>;
    constructor(adapter: DateAdapter<D>);
    ngAfterContentInit(): void;
    /** Handles when a new month is selected. */
    onMonthSelected(month: number): void;
    /** Handles when a new year is selected. */
    onYearSelected(year: number): void;
    selectCurrentDate(): void;
    /** Handles user clicks on the previous button. */
    selectPreviousMonth(): void;
    /** Handles user clicks on the next button. */
    selectNextMonth(): void;
    private compareDate;
    private updateSelectedValues;
    private updateSelectionOptions;
    private updateYearsOptions;
    private updateMonthOptions;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqCalendarHeader<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqCalendarHeader<any>, "kbq-calendar-header", ["kbqCalendarHeader"], { "activeDate": { "alias": "activeDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; }, { "activeDateChange": "activeDateChange"; "monthSelected": "monthSelected"; "yearSelected": "yearSelected"; }, never, never, false, never>;
}
