import { Repository } from 'typeorm'; import { Notification, NotificationTemplate, UserNotificationPreference } from '../entities'; import { CreateNotificationDto, SendTemplateNotificationDto, UpdatePreferencesDto } from '../dto'; import { EmailService } from '@modules/email'; export declare class NotificationsService { private readonly notificationRepository; private readonly templateRepository; private readonly preferenceRepository; private readonly emailService; private readonly logger; constructor(notificationRepository: Repository, templateRepository: Repository, preferenceRepository: Repository, emailService: EmailService); create(dto: CreateNotificationDto, tenantId: string): Promise; sendFromTemplate(dto: SendTemplateNotificationDto, tenantId: string): Promise; findAllForUser(userId: string, tenantId: string, options?: { page?: number; limit?: number; unreadOnly?: boolean; }): Promise<{ data: Notification[]; total: number; unread: number; }>; markAsRead(notificationId: string, userId: string, tenantId: string): Promise; markAllAsRead(userId: string, tenantId: string): Promise; delete(notificationId: string, userId: string, tenantId: string): Promise; getUnreadCount(userId: string, tenantId: string): Promise; findAllTemplates(): Promise; findTemplateByCode(code: string): Promise; getPreferences(userId: string, tenantId: string): Promise; updatePreferences(userId: string, tenantId: string, dto: UpdatePreferencesDto): Promise; private formatEmailHtml; cleanupOldNotifications(daysToKeep?: number): Promise; }