import { EventEmitter } from "@uplink-protocol/core"; import { DateRange, YearRange } from "./calendar.interfaces"; /** * Event manager service interface * Responsible for managing and emitting calendar events */ export interface IEventManagerService { /** * Initialize event emitters */ initializeEvents(): { dateSelected: EventEmitter; dateRangeSelected: EventEmitter; monthChanged: EventEmitter; yearChanged: EventEmitter; viewChanged: EventEmitter<{ month: number; year: number; }>; yearRangeChanged: EventEmitter; }; /** * Emit date selected event */ emitDateSelected(emitter: EventEmitter, date: Date): void; /** * Emit date range selected event */ emitDateRangeSelected(emitter: EventEmitter, range: DateRange): void; /** * Emit month changed event */ emitMonthChanged(emitter: EventEmitter, month: number): void; /** * Emit year changed event */ emitYearChanged(emitter: EventEmitter, year: number): void; /** * Emit view changed event */ emitViewChanged(emitter: EventEmitter<{ month: number; year: number; }>, view: { month: number; year: number; }): void; /** * Emit year range changed event */ emitYearRangeChanged(emitter: EventEmitter, range: YearRange): void; }