import { EventEmitter } from '@angular/core';
import { IpiDatepickerService } from './../../datepicker-service';
import { DateRange, DateSelectionEvent } from './../../datepicker.component';
import * as i0 from "@angular/core";
export declare const months: string[];
export type activeDateView = 'month' | 'year' | 'multi-year';
export declare class IpiCalendarComponent {
    private datePickerService;
    constructor(datePickerService: IpiDatepickerService);
    get activeDate(): any;
    set activeDate(value: Date | null);
    get minDate(): Date | null;
    set minDate(value: Date | null);
    get selected(): DateRange | Date | null;
    set selected(value: DateRange | Date | null);
    get maxDate(): Date | null;
    set maxDate(value: Date | null);
    comparisonStart: Date | null;
    /** End of the comparison range. */
    comparisonEnd: Date | null;
    /** ARIA Accessible name of the `<input StartDate/>` */
    startDateAccessibleName: string | null;
    /** ARIA Accessible name of the `<input EndDate/>` */
    endDateAccessibleName: string | null;
    monthSelected: EventEmitter<Date>;
    yearSelected: EventEmitter<Date>;
    activeDateChange: EventEmitter<DateSelectionEvent<number>>;
    userDragDrop: EventEmitter<DateSelectionEvent<DateRange>>;
    selectedChange: EventEmitter<Date | null>;
    userSelection: EventEmitter<DateSelectionEvent<Date | null>>;
    calendarClose: EventEmitter<any>;
    isButtonHidden: boolean;
    activeDateView: activeDateView;
    activeDrag: DateSelectionEvent<Date> | null;
    private _activeDate;
    private _minDate;
    private _maxDate;
    private _selected;
    calendarDateViewChange(): void;
    onCalendarDateViewKeydown(event: KeyboardEvent): void;
    goToPreviousView(): void;
    goToNextView(): void;
    onArrowKeydown(event: KeyboardEvent, direction: 'next' | 'previous'): void;
    previousEnabled(): boolean;
    nextEnabled(): boolean;
    dragStarted(event: any): void;
    /**
     * Called when a drag completes. It may end in cancelation or in the selection
     * of a new range.
     */
    dragEnded(event: any): void;
    get viewButtonText(): string;
    goToDateInView(date: Date, view: 'month' | 'year' | 'multi-year'): void;
    monthSelectedInYearView(normalizedMonth: Date): void;
    yearSelectedInMultiYearView(normalizedYear: Date): void;
    dateSelected(event: any): void;
    toggleButtonVisibility(event: FocusEvent): void;
    private getCurrentMonthAndYear;
    private getCurrentYear;
    private formatYearRange;
    private formatMinAndMaxYearLabels;
    private isSameView;
    static ɵfac: i0.ɵɵFactoryDeclaration<IpiCalendarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IpiCalendarComponent, "ipi-calendar", never, { "activeDate": { "alias": "activeDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "comparisonStart": { "alias": "comparisonStart"; "required": false; }; "comparisonEnd": { "alias": "comparisonEnd"; "required": false; }; "startDateAccessibleName": { "alias": "startDateAccessibleName"; "required": false; }; "endDateAccessibleName": { "alias": "endDateAccessibleName"; "required": false; }; }, { "monthSelected": "monthSelected"; "yearSelected": "yearSelected"; "activeDateChange": "activeDateChange"; "userDragDrop": "userDragDrop"; "selectedChange": "selectedChange"; "userSelection": "userSelection"; "calendarClose": "calendarClose"; }, never, never, true, never>;
}
