import { AfterContentInit, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core'; import { DateAdapter } from '@koobiq/components/core'; import { Subject } from 'rxjs'; import { KbqCalendarCellCssClasses } from './calendar-body.component'; import { KbqDatepickerIntl } from './datepicker-intl'; import { KbqMonthView } from './month-view.component'; import * as i0 from "@angular/core"; /** * A calendar that is used as part of the datepicker. * @docs-private */ export declare class KbqCalendar implements AfterContentInit, OnDestroy, OnChanges { private readonly adapter; private changeDetectorRef; /** A date representing the period (month or year) to start the calendar in. */ get startAt(): D | null; set startAt(value: D | null); private _startAt; /** The currently selected date. */ get selected(): D | null; set selected(value: D | null); private _selected; /** The minimum selectable date. */ get minDate(): D | null; set minDate(value: D | null); private _minDate; /** The maximum selectable date. */ get maxDate(): D | null; set maxDate(value: D | null); private _maxDate; /** * The current active date. This determines which time period is shown and which date is * highlighted and used as the anchor on when using keyboard navigation. */ get activeDate(): D; set activeDate(value: D | null); private _activeDate; /** Function used to filter which dates are selectable. */ dateFilter: (date: D) => boolean; /** Function that can be used to add custom CSS classes to dates. */ dateClass: (date: D) => KbqCalendarCellCssClasses; /** Emits when the currently selected date changes. */ readonly selectedChange: EventEmitter; /** * Emits the year chosen in multiyear view. * This doesn't imply a change on the selected date. */ readonly yearSelected: EventEmitter; /** * Emits the month chosen in year view. * This doesn't imply a change on the selected date. */ readonly monthSelected: EventEmitter; /** Emits when any date is selected. */ readonly userSelection: EventEmitter; /** Reference to the current month view component. */ monthView: KbqMonthView; /** * Emits whenever there is a state change that the header may need to respond to. */ stateChanges: Subject; /** The input element this datepicker is associated with. */ datepickerInput: any; private readonly intlChanges; /** Subscription to value changes in the associated input element. */ private inputSubscription; constructor(intl: KbqDatepickerIntl, adapter: DateAdapter, changeDetectorRef: ChangeDetectorRef); ngOnChanges(changes: SimpleChanges): void; ngAfterContentInit(): void; ngOnDestroy(): void; /** * Register an input with this calendar. * @param input The calendar input to register with this calendar. */ registerInput(input: any): void; /** Updates today's date after an update of the active date */ updateTodaysDate(): void; /** Handles date selection in the month view. */ dateSelected(date: D): void; userSelected(): void; /** * @param obj The object to check. * @returns The given object if it is both a date instance and valid, otherwise null. */ private getValidDateOrNull; private getActiveDateDefault; static ɵfac: i0.ɵɵFactoryDeclaration, [null, { optional: true; }, null]>; static ɵcmp: i0.ɵɵComponentDeclaration, "kbq-calendar", ["kbqCalendar"], { "startAt": { "alias": "startAt"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "dateFilter": { "alias": "dateFilter"; "required": false; }; "dateClass": { "alias": "dateClass"; "required": false; }; }, { "selectedChange": "selectedChange"; "yearSelected": "yearSelected"; "monthSelected": "monthSelected"; "userSelection": "userSelection"; }, never, never, true, never>; }