import { ICalendarEvent } from '../types/CalendarTypes'; import { Configuration } from '../configurations/CalendarConfig'; import { DateService } from '../utils/DateService'; /** * Base class for event elements */ export declare abstract class BaseSwpEventElement extends HTMLElement { protected dateService: DateService; protected config: Configuration; constructor(); /** * Create a clone for drag operations * Must be implemented by subclasses */ abstract createClone(): HTMLElement; get eventId(): string; set eventId(value: string); get start(): Date; set start(value: Date); get end(): Date; set end(value: Date); get title(): string; set title(value: string); get description(): string; set description(value: string); get type(): string; set type(value: string); } /** * Web Component for timed calendar events (Light DOM) */ export declare class SwpEventElement extends BaseSwpEventElement { /** * Observed attributes - changes trigger attributeChangedCallback */ static get observedAttributes(): string[]; /** * Called when element is added to DOM */ connectedCallback(): void; /** * Called when observed attribute changes */ attributeChangedCallback(name: string, oldValue: string, newValue: string): void; /** * Update event position during drag * @param columnDate - The date of the column * @param snappedY - The Y position in pixels */ updatePosition(columnDate: Date, snappedY: number): void; /** * Update event height during resize * @param newHeight - The new height in pixels */ updateHeight(newHeight: number): void; /** * Create a clone for drag operations */ createClone(): SwpEventElement; /** * Render inner HTML structure */ private render; /** * Update time display when attributes change */ private updateDisplay; /** * Calculate start/end minutes from Y position */ private calculateTimesFromPosition; /** * Create SwpEventElement from ICalendarEvent */ static fromCalendarEvent(event: ICalendarEvent): SwpEventElement; /** * Extract ICalendarEvent from DOM element */ static extractCalendarEventFromElement(element: HTMLElement): ICalendarEvent; } /** * Web Component for all-day calendar events */ export declare class SwpAllDayEventElement extends BaseSwpEventElement { connectedCallback(): void; /** * Create a clone for drag operations */ createClone(): SwpAllDayEventElement; /** * Apply CSS grid positioning */ applyGridPositioning(row: number, startColumn: number, endColumn: number): void; /** * Create from ICalendarEvent */ static fromCalendarEvent(event: ICalendarEvent): SwpAllDayEventElement; }