/** * Event Manager Service * * Main service that orchestrates all event management functionality */ import { EventEmitter } from "@uplink-protocol/core"; import { CalendarEvent, CreateEventInput, UpdateEventInput, EventFilter, EventSort, EventResults, EventValidationResult } from '../interfaces/event.interfaces'; import { IEventManagerService, EventManagerConfig } from '../interfaces/event-manager.service.interfaces'; /** * Event Manager Service Implementation */ export declare class EventManagerService implements IEventManagerService { private initialized; private config; private storageService; private validationService; private formattingService; private searchService; private recurrenceService; private events; constructor(); /** * Initialize the event manager */ initialize(config?: EventManagerConfig): Promise; /** * Get all events */ getAllEvents(): Promise; /** * Get event by ID */ getEventById(id: string): Promise; /** * Query events with filters and pagination */ queryEvents(filter?: EventFilter, sort?: EventSort, page?: number, pageSize?: number): Promise; /** * Create a new event */ createEvent(input: CreateEventInput): Promise; /** * Update an event */ updateEvent(input: UpdateEventInput): Promise; /** * Delete an event */ deleteEvent(id: string): Promise; /** * Search events */ searchEvents(query: string, filters?: EventFilter): Promise; /** * Filter events */ filterEvents(filter: EventFilter): Promise; /** * Sort events */ sortEvents(sort: EventSort): Promise; /** * Get upcoming events */ getUpcomingEvents(limit?: number): Promise; /** * Validate event */ validateEvent(input: CreateEventInput | UpdateEventInput): Promise; /** * Get the events object for external access */ getEvents(): { eventCreated: EventEmitter; eventUpdated: EventEmitter<{ event: CalendarEvent; oldEvent: CalendarEvent; }>; eventDeleted: EventEmitter<{ eventId: string; event: CalendarEvent; }>; eventsLoaded: EventEmitter; filterChanged: EventEmitter; sortChanged: EventEmitter; searchPerformed: EventEmitter<{ query: string; results: CalendarEvent[]; }>; eventSelected: EventEmitter; eventDeselected: EventEmitter; validationFailed: EventEmitter; conflictDetected: EventEmitter; conflictResolved: EventEmitter; syncStarted: EventEmitter<{ providerId: string; }>; syncCompleted: EventEmitter<{ providerId: string; results: any; }>; syncFailed: EventEmitter<{ providerId: string; error: string; }>; bulkOperationCompleted: EventEmitter<{ operation: string; count: number; }>; loadingChanged: EventEmitter; errorOccurred: EventEmitter; statisticsUpdated: EventEmitter; recurrenceCreated: EventEmitter; reminderScheduled: EventEmitter<{ eventId: string; reminder: any; }>; categoryAdded: EventEmitter; tagAdded: EventEmitter; }; /** * Check if the service is initialized */ isInitialized(): boolean; /** * Get current configuration */ getConfig(): EventManagerConfig; /** * Clear all events */ clearAllEvents(): Promise; bulkCreateEvents(inputs: CreateEventInput[]): Promise; bulkUpdateEvents(inputs: UpdateEventInput[]): Promise; bulkDeleteEvents(ids: string[]): Promise; getEventsForDateRange(start: Date, end: Date): Promise; getEventsForDate(date: Date): Promise; getOverdueEvents(): Promise; getStatistics(dateRange?: { start: Date; end: Date; }): Promise; importEvents(events: CalendarEvent[], options?: { merge?: boolean; skipDuplicates?: boolean; }): Promise<{ imported: number; skipped: number; errors: string[]; }>; exportEvents(filter?: EventFilter, format?: 'json' | 'ics' | 'csv'): Promise<{ data: string; filename: string; mimeType: string; }>; getEventConflicts(_eventId: string): Promise; resolveEventConflict(_conflictId: string, resolution: any): Promise; onEventCreated(callback: (event: CalendarEvent) => void): () => void; onEventUpdated(callback: (event: CalendarEvent, oldEvent: CalendarEvent) => void): () => void; onEventDeleted(callback: (eventId: string) => void): () => void; onValidationFailed(callback: (result: EventValidationResult) => void): () => void; onError(callback: (error: Error) => void): () => void; getStatus(): { initialized: boolean; totalEvents: number; lastSyncTime?: Date; errors: string[]; health: 'good' | 'warning' | 'error'; }; backup(): Promise; restore(backupData: string): Promise; initializeEvents(): { eventCreated: EventEmitter; eventUpdated: EventEmitter<{ event: CalendarEvent; oldEvent: CalendarEvent; }>; eventDeleted: EventEmitter<{ eventId: string; event: CalendarEvent; }>; validationFailed: EventEmitter; errorOccurred: EventEmitter; bulkOperationCompleted: EventEmitter<{ operation: string; count: number; }>; }; }