import { CalendarEvent } from '../types/CalendarTypes'; /** * Base interface for all managers */ export interface IManager { /** * Initialize the manager */ initialize?(): Promise | void; /** * Refresh the manager's state */ refresh?(): void; /** * Destroy the manager and clean up resources */ destroy?(): void; } /** * Interface for managers that handle events */ export interface IEventManager extends IManager { loadData(): Promise; getEvents(): CalendarEvent[]; getEventsForPeriod(startDate: Date, endDate: Date): CalendarEvent[]; } /** * Interface for managers that handle rendering */ export interface IRenderingManager extends IManager { render(): Promise | void; } /** * Interface for managers that handle navigation */ export interface INavigationManager extends IManager { getCurrentWeek(): Date; navigateToToday(): void; navigateToNextWeek(): void; navigateToPreviousWeek(): void; } /** * Interface for managers that handle scrolling */ export interface IScrollManager extends IManager { scrollTo(scrollTop: number): void; scrollToHour(hour: number): void; }