import { OnInit, OnDestroy, OnChanges, SimpleChanges, NgZone, TemplateRef, type Type } from '@angular/core'; import type { CalendarEvent, CalendarDateTime, ViewType, Resource } from '@bimetal/core'; import { getYear, getMonth } from '@bimetal/core'; import type { CalendarStore } from '@bimetal/calendar-data'; import type { CalendarRule } from '@bimetal/calendar-rules'; import { EventRenderService } from '@bimetal/angular'; import type { CalendarConfig, CalendarConfigInput, ViewConfig, CustomViewDefinition, CustomViewInputs, EventDialogMode, EventDialogInputs, AnchorRect, EventClassNameFn, EventStyleFn, EventTitleFn, EventRenderTemplateContext } from '@bimetal/angular'; import type { CalendarControllerSnapshot } from '@bimetal/headless'; import * as i0 from "@angular/core"; export declare class CalendarComponent implements OnInit, OnDestroy, OnChanges { eventRenderService?: EventRenderService | undefined; private zone?; store: CalendarStore; rules: CalendarRule[]; config: CalendarConfigInput | undefined; darkMode: boolean; showCategoryFilter: boolean; showResourceFilter: boolean; customViews?: readonly CustomViewDefinition[]; eventDialog: EventDialogMode; onEventClick?: (eventId: string, anchorRect: AnchorRect, instanceDate?: number) => void; onNewEventRequested?: (defaultDate: CalendarDateTime, anchorRect: AnchorRect, defaultResourceId?: string) => void; /** Template projected after the default content zone of every event. */ eventBadgesTpl?: TemplateRef; /** Template replacing the default content zone of every event. */ eventContentTpl?: TemplateRef; /** Per-event additional class names. Return undefined to keep defaults. */ eventClassName?: EventClassNameFn; /** Per-event extra style object merged after the default style. */ eventStyle?: EventStyleFn; /** Per-event title override. Return undefined to keep event.title. */ eventTitle?: EventTitleFn; private binding; /** Latest controller snapshot, read by the template via the signal. */ get snapshot(): CalendarControllerSnapshot; getYear: typeof getYear; getMonth: typeof getMonth; validateBeforeSave: (event: CalendarEvent) => string[]; /** Window keydown → controller. Bound here so it can be removed on destroy * and so non-TestBed unit tests can dispatch real keyboard events. */ private keyHandler; constructor(eventRenderService?: EventRenderService | undefined, zone?: NgZone | undefined); get ctrl(): import("@bimetal/headless").CalendarController; get mergedConfig(): CalendarConfig; get viewConfigList(): ViewConfig[]; get filteredEvents(): CalendarEvent[]; get visibleResources(): readonly Resource[]; get selectedEventId(): string | null; get selectedInstanceDate(): number | undefined; /** The dialog component requires a real DOMRect; the snapshot's AnchorRect * is a measured DOMRect at runtime. */ get dialogAnchorRect(): DOMRect; get dialogHistory(): import("@bimetal/event-sourcing").DomainEvent[]; private syncEventRenderService; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; handleViewChange(v: ViewType): void; getCustomView(id: ViewType): CustomViewDefinition | undefined; get customViewInputs(): CustomViewInputs; /** Component class for the custom dialog (template binding helper). */ get customDialogComponent(): Type | null; /** Inputs passed to the custom dialog via *ngComponentOutlet. */ get eventDialogInputs(): EventDialogInputs | undefined; handleEventClick(ev: { eventId: string; rect: AnchorRect; instanceDate?: number; }): void; handleDayCellClick(ev: { date: CalendarDateTime; rect: AnchorRect; }): void; handleResourceCellClick(ev: { date: CalendarDateTime; time: string; resourceId: string; rect: AnchorRect; }): void; handleTimelineCellClick(ev: { date: CalendarDateTime; resourceId: string; rect: AnchorRect; }): void; handleDropEvent(ev: { event: DragEvent; date: CalendarDateTime; }): void; handleDropTimedEvent(ev: { event: DragEvent; date: CalendarDateTime; time: string; }): void; handleResourceDrop(ev: { event: DragEvent; date: CalendarDateTime; time: string; resourceId: string; }): void; handleTimelineDrop(ev: { event: DragEvent; date: CalendarDateTime; resourceId: string; }): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } //# sourceMappingURL=Calendar.d.ts.map