// SPDX-License-Identifier: AGPL-3.0-or-later import type {ReportReceivedTargetKind} from '@pkgs/email/src/email_i18n/EmailI18nTypes'; export interface IEmailService { sendPasswordResetEmail(email: string, username: string, resetToken: string, locale?: string | null): Promise; sendEmailVerification( email: string, username: string, verificationToken: string, locale?: string | null, ): Promise; sendIpAuthorizationEmail( email: string, username: string, authorizationToken: string, ipAddress: string, location: string, locale?: string | null, ): Promise; sendAccountTempBannedEmail( email: string, username: string, reason: string | null, durationHours: number, bannedUntil: Date, locale?: string | null, ): Promise; sendAccountScheduledForDeletionEmail( email: string, username: string, reason: string | null, deletionDate: Date, locale?: string | null, ): Promise; sendSelfDeletionScheduledEmail( email: string, username: string, deletionDate: Date, locale?: string | null, ): Promise; sendAccountDeletionRequestedEmail( email: string, username: string, reason: string | null, deletionDate: Date, locale?: string | null, ): Promise; sendAccountDeletionInactivityEmail( email: string, username: string, reason: string | null, deletionDate: Date, locale?: string | null, ): Promise; sendAccountDeletionCancelledEmail(email: string, username: string, locale?: string | null): Promise; sendUnbanNotification( email: string, username: string, reason: string | null, locale?: string | null, ): Promise; sendScheduledDeletionNotification( email: string, username: string, deletionDate: Date, reason: string | null, locale?: string | null, ): Promise; sendInactivityWarningEmail( email: string, username: string, deletionDate: Date, lastActiveDate: Date, locale?: string | null, ): Promise; sendHarvestCompletedEmail( email: string, username: string, downloadUrl: string, totalMessages: number, fileSize: number, expiresAt: Date, locale?: string | null, ): Promise; sendGiftChargebackNotification(email: string, username: string, locale?: string | null): Promise; sendReportResolvedEmail( email: string, username: string, reportId: string, publicComment: string, locale?: string | null, ): Promise; sendDsaReportResolvedEmail( email: string, reportId: string, publicComment: string, locale?: string | null, ): Promise; sendReportReceivedEmail( email: string, reportId: string, targetKind: ReportReceivedTargetKind, locale?: string | null, ): Promise; sendDsaReportVerificationCode(email: string, code: string, expiresAt: Date, locale?: string | null): Promise; sendEmailChangeOriginal(email: string, username: string, code: string, locale?: string | null): Promise; sendEmailChangeNew(email: string, username: string, code: string, locale?: string | null): Promise; sendEmailChangeRevert( email: string, username: string, newEmail: string, token: string, locale?: string | null, ): Promise; sendPasswordChangeVerification( email: string, username: string, code: string, locale?: string | null, ): Promise; sendMfaBackupCodesVerification( email: string, username: string, code: string, locale?: string | null, ): Promise; sendDonationMagicLink( email: string, token: string, manageUrl: string, expiresAt: Date, locale?: string | null, ): Promise; sendDonationConfirmation( email: string, amountCents: number, currency: string, interval: string, manageUrl: string, locale?: string | null, ): Promise; }