import { EventEmitter, OnChanges, OnDestroy } from '@angular/core';
import { ComponentChanges } from '@bimeister/pupakit.common';
import { Observable } from 'rxjs';
import { CalendarQuickSelectMode } from '../../declarations/enums/calendar-quick-select-mode.enum';
import { CalendarMonth } from '../../declarations/interfaces/calendar-month.interface';
import { CalendarManipulatorService } from '../../services/calendar-manipulator.service';
import { CalendarStateService } from '../../services/calendar-state.service';
import * as i0 from "@angular/core";
export declare class CalendarComponent implements OnChanges, OnDestroy {
    private readonly calendarStateService;
    private readonly calendarManipulatorService;
    isRange: boolean;
    selected: Date[] | Date;
    readonly select: EventEmitter<Date[]>;
    readonly quickSelectMode: typeof CalendarQuickSelectMode;
    readonly quickSelectMode$: Observable<CalendarQuickSelectMode>;
    private readonly subscription;
    constructor(calendarStateService: CalendarStateService, calendarManipulatorService: CalendarManipulatorService);
    ngOnChanges(changes: ComponentChanges<this>): void;
    ngOnDestroy(): void;
    handleYearSelect(year: number): void;
    handleMonthSelect(month: CalendarMonth): void;
    private processIsRangeChange;
    private processSelectedChange;
    private emitSelectDatesWhenSelectionChanged;
    static ɵfac: i0.ɵɵFactoryDeclaration<CalendarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "pupa-calendar", never, { "isRange": "isRange"; "selected": "selected"; }, { "select": "select"; }, never, never, false>;
}
