import { IEventNotificationService, NotificationRequest, NotificationStatus, NotificationConfig, NotificationTemplate, NotificationHistory, BulkNotificationRequest, NotificationAnalytics, NotificationType, NotificationChannel } from '../interfaces/event-notification.interfaces'; import { CalendarEvent } from '../interfaces/event.interfaces'; /** * Event Notification Service Implementation * Provides comprehensive notification capabilities for events */ export declare class EventNotificationService implements IEventNotificationService { private defaultConfig; private templates; private userConfigs; private notifications; private notificationStatus; private history; private notificationCounter; private notificationSentCallbacks; private notificationFailedCallbacks; /** * Reset all internal state - used for test isolation */ reset(): void; initialize(config?: Partial): Promise; sendNotification(request: NotificationRequest): Promise; scheduleNotification(request: NotificationRequest): Promise; sendBulkNotifications(request: BulkNotificationRequest): Promise; cancelNotification(notificationId: string): Promise; getNotificationStatus(notificationId: string): Promise; configureUserNotifications(userId: string, config: NotificationConfig): Promise; getUserNotificationConfig(userId: string): Promise; createTemplate(template: NotificationTemplate): Promise; updateTemplate(templateId: string, updates: Partial): Promise; getTemplates(type?: NotificationType): Promise; deleteTemplate(templateId: string): Promise; processEventNotifications(event: CalendarEvent, action: 'created' | 'updated' | 'deleted' | 'reminder'): Promise; getNotificationHistory(userId?: string, dateRange?: { start: Date; end: Date; }, type?: NotificationType): Promise; markNotificationInteraction(notificationId: string, interaction: 'opened' | 'clicked' | 'dismissed'): Promise; getPendingNotifications(userId?: string): Promise; getAnalytics(dateRange: { start: Date; end: Date; }, userId?: string): Promise; testNotification(userId: string, channel: NotificationChannel, message: string): Promise; cleanupExpiredNotifications(): Promise; onNotificationSent(callback: (notification: NotificationRequest, status: NotificationStatus) => void): () => void; onNotificationFailed(callback: (notification: NotificationRequest, error: string) => void): () => void; private initializeDefaultTemplates; private simulateNotificationDelivery; private addToHistory; private sendEventCreatedNotifications; private sendEventUpdatedNotifications; private sendEventDeletedNotifications; private sendEventReminderNotifications; private calculateDeliveryRates; private calculateOpenRates; private calculateClickRates; private calculateTopChannels; private calculateEngagementScores; private calculateErrorStats; }