import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { Moment } from 'moment';
import { QdCalendarDay, QdCalendarMode, QdDisabledDates } from '../../model/datepicker';
/**
 * DO NOT REMOVE — Vite/ESM does not bundle Moment locales automatically.
 * These side-effect imports register de/fr/it for month and weekday names.
 */
import 'moment/locale/de';
import 'moment/locale/fr';
import 'moment/locale/it';
import * as i0 from "@angular/core";
export declare class QdCalendarComponent implements OnInit, OnChanges {
    /**
     * This property is used to highlight the selected date in the calendar. It should be in the format for example 'DD.MM.YYYY' or 'MM/DD/YYYY' depending on the language used.
     *
     * @example '2022-12-25'
     */
    selectedDate: QdCalendarDay['formatted'];
    /**
     * This property determines the language used for displaying the weekdays and formatting the dates in the calendar. It should be a valid language code supported by the moment.js library.
     *
     * @example 'de'
     */
    language: string;
    /**
     * This property disables the given date ranges.The ranges have a "from" and "to" date.
     * If "from" is empty, it will set the default value 1900
     * If "to" is empty, it will be set to the default 2100
     *
     */
    disabledDates: QdDisabledDates[];
    /**
     * Outputs a value when the user selects a date in the calendar. The newly selected date is output as a formatted date string.
     */
    selectedChange: EventEmitter<string>;
    currentDate: Moment;
    todayDate: Moment;
    weekdays: string[];
    weeks: Array<QdCalendarDay[]>;
    months: string[];
    years: number[];
    mode: QdCalendarMode;
    protected readonly QdCalendarMode: typeof QdCalendarMode;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    isSameYearMonth(day: Moment): boolean;
    isSameMonth(month: any): boolean;
    isSameYear(year: number): boolean;
    prev(): void;
    next(): void;
    isSelected(momentObj: Moment): boolean;
    selectDate(date: QdCalendarDay | any): void;
    selectYear(year: number): void;
    selectMonth(month: number): void;
    changeMode(nr: QdCalendarMode): void;
    private generateCalendar;
    private fillDates;
    private isToday;
    private setCurrentDate;
    private getYears;
    private isDisabled;
    private setWeekdays;
    static ɵfac: i0.ɵɵFactoryDeclaration<QdCalendarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QdCalendarComponent, "qd-calendar", never, { "selectedDate": { "alias": "selectedDate"; "required": false; }; "language": { "alias": "language"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; }, { "selectedChange": "selectedChange"; }, never, never, false, never>;
}
//# sourceMappingURL=calendar.component.d.ts.map