/* * Copyright (C) 2026 Fluxer Contributors * * This file is part of Fluxer. * * Fluxer is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Fluxer is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Fluxer. If not, see . */ 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; sendAccountDisabledForSuspiciousActivityEmail( email: string, username: string, reason: string | null, 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; sendUnbanNotification(email: string, username: string, reason: string, locale?: string | null): Promise; sendScheduledDeletionNotification( email: string, username: string, deletionDate: Date, reason: string, 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; sendDsaReportVerificationCode(email: string, code: string, expiresAt: Date, locale?: string | null): Promise; sendRegistrationApprovedEmail(email: string, username: string, 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; 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; }