import { IEventBus, IRenderContext } from '../types/CalendarTypes'; import { EventManager } from '../managers/EventManager'; import { IEventRenderer } from './EventRenderer'; import { DateService } from '../utils/DateService'; /** * EventRenderingService - Render events i DOM med positionering using Strategy Pattern * Håndterer event positioning og overlap detection */ export declare class EventRenderingService { private eventBus; private eventManager; private strategy; private dateService; private dragMouseLeaveHeaderListener; constructor(eventBus: IEventBus, eventManager: EventManager, strategy: IEventRenderer, dateService: DateService); /** * Render events in a specific container for a given period */ renderEvents(context: IRenderContext): Promise; private setupEventListeners; /** * Handle GRID_RENDERED event - render events in the current grid */ private handleGridRendered; /** * Handle VIEW_CHANGED event - clear and re-render for new view */ private handleViewChanged; /** * Setup all drag event listeners - moved from EventRenderer for better separation of concerns */ private setupDragEventListeners; private setupDragStartListener; private setupDragMoveListener; private setupDragEndListener; private setupDragColumnChangeListener; private setupDragMouseLeaveHeaderListener; private setupDragMouseEnterColumnListener; private setupResizeEndListener; private setupNavigationCompletedListener; /** * Re-render affected columns after drag to recalculate stacking/grouping */ private reRenderAffectedColumns; /** * Clear events in a single column's events layer */ private clearColumnEvents; /** * Render events for a single column */ private renderSingleColumn; private clearEvents; refresh(container?: HTMLElement): void; }