import { ConfigService } from '@nestjs/config'; import { AuthenticationModuleOptions } from '../../../authentication'; import { BaseHttpService } from '../../base-http.service'; import { AccountLoginTokenMailDtoV1, AccountPasswordResetMailDtoV1, EventUserCancellationMailDtoV1, EventUserRegistrationMailDtoV1, IdeaStatusUpdateMailDtoV1, IdeaSubmittedMailDtoV1, LunchRouletteCancellationMailDtoV1, LunchRouletteMatchedMailDtoV1, LunchRouletteRegistrationMailDtoV1, LunchRouletteUnmatchedMailDtoV1, NewsletterIssueMailDtoV1, NewsletterSubscribedMailDtoV1, NewsletterUnsubscribedMailDtoV1, NotificationMailDtoV1 } from './dtos'; /** * MailService * * Provides a type-safe interface for sending various email notifications * via the central organisation-hub-email service. Handles environment-aware * client configuration and logging for success/failure of email dispatches. */ export declare class MailService extends BaseHttpService { /** * Creates a MailService client for a specific resource. * * @param authenticationOptions Authentication options injected from the Auth module. * @param configService NestJS configuration service for environment variables and URLs. */ constructor(authenticationOptions: AuthenticationModuleOptions, configService: ConfigService); /** * Sends an email of the given type with the provided payload. * * @template Type - One of the supported MailType keys * @param type - The type of email to send * @param payload - The payload DTO corresponding to the type */ private sendMail; /** * Sends an email with a one-time login token. * @param {AccountLoginTokenMailDtoV1} payload - DTO containing recipient and token. */ sendAccountLoginTokenMailV1(payload: AccountLoginTokenMailDtoV1): void; /** * Sends a password reset email with a secure link. * @param {AccountPasswordResetMailDtoV1} payload - DTO containing recipient and reset URL. */ sendAccountPasswordResetMailV1(payload: AccountPasswordResetMailDtoV1): void; /** * Sends an event invitation email. * @param {EventUserRegistrationMailDtoV1} payload - DTO containing event details and recipient. */ sendEventUserRegistrationMailV1(payload: EventUserRegistrationMailDtoV1): void; /** * Sends a notification about an event cancellation. * @param {EventUserCancellationMailDtoV1} payload - DTO containing event title, time, and links. */ sendEventUserCancellationMailV1(payload: EventUserCancellationMailDtoV1): void; /** * Sends a confirmation that an idea was submitted. * @param {IdeaSubmittedMailDtoV1} payload - DTO containing recipient and management URL. */ sendIdeaSubmittedMailV1(payload: IdeaSubmittedMailDtoV1): void; /** * Sends a notification that an idea's status has changed. * @param {IdeaStatusUpdateMailDtoV1} payload - DTO containing the old and new status. */ sendIdeaStatusUpdateMailV1(payload: IdeaStatusUpdateMailDtoV1): void; /** * Sends confirmation of lunch roulette participation. * @param {LunchRouletteRegistrationMailDtoV1} payload - DTO with recipient, location, and type. */ sendLunchRouletteRegistrationMailV1(payload: LunchRouletteRegistrationMailDtoV1): void; /** * Sends a cancellation email for lunch roulette. * @param {LunchRouletteCancellationMailDtoV1} payload - DTO containing the recipient. */ sendLunchRouletteCancellationMailV1(payload: LunchRouletteCancellationMailDtoV1): void; /** * Sends a match notification to lunch roulette participants. * @param {LunchRouletteMatchedMailDtoV1} payload - DTO with recipients, message, and details URL. */ sendLunchRouletteMatchedMailV1(payload: LunchRouletteMatchedMailDtoV1): void; /** * Notifies a user that they were unmatched in lunch roulette. * @param {LunchRouletteUnmatchedMailDtoV1} payload - DTO with the unmatched recipient. */ sendLunchRouletteUnmatchedMailV1(payload: LunchRouletteUnmatchedMailDtoV1): void; /** * Sends confirmation of a newsletter subscription. * @param {NewsletterSubscribedMailDtoV1} payload - DTO with recipient information. */ sendNewsletterSubscribedMailV1(payload: NewsletterSubscribedMailDtoV1): void; /** * Sends confirmation of newsletter unsubscription. * @param {NewsletterUnsubscribedMailDtoV1} payload - DTO with recipient information. */ sendNewsletterUnsubscribedMailV1(payload: NewsletterUnsubscribedMailDtoV1): void; /** * Sends the latest issue of the newsletter. * @param {NewsletterIssueMailDtoV1} payload - DTO containing recipients, content, and metadata. */ sendNewsletterIssueMailV1(payload: NewsletterIssueMailDtoV1): void; /** * Sends a general-purpose email notification. * @param {NotificationMailDtoV1} payload - DTO with recipients, title, message, and optional URL. */ sendNotificationMailV1(payload: NotificationMailDtoV1): void; }