import { IBasePerTenantAndOrganizationEntityModel, IInviteUserModel, IJoinEmployeeModel, IUser, LanguagesEnum } from '@metad/contracts'; import { Repository } from 'typeorm'; import { TenantAwareCrudService } from './../core/crud'; import { Email as IEmail } from './email.entity'; import { EmailTemplate, Organization, User } from './../core/entities/internal'; import { CustomSmtpService } from '../custom-smtp/custom-smtp.service'; export declare class EmailService extends TenantAwareCrudService { private readonly emailRepository; private readonly emailTemplateRepository; private readonly organizationRepository; private readonly customSmtpService; private readonly logger; constructor(emailRepository: Repository, emailTemplateRepository: Repository, organizationRepository: Repository, customSmtpService: CustomSmtpService); /** * GET email instance for tenant/organization * * @param organizationId * @param tenantId * @returns */ getEmailInstance({ organizationId, tenantId }: IBasePerTenantAndOrganizationEntityModel): Promise>; /** * * @param smtpConfig * @returns */ private getEmailConfig; private render; sendAcceptInvitationEmail(joinEmployeeModel: IJoinEmployeeModel, originUrl?: string): Promise; welcomeUser(user: IUser, languageCode: LanguagesEnum, organizationId?: string, originUrl?: string): Promise; sendVerifyEmailMail(user: IUser, languageCode: LanguagesEnum, url: string, organizationId?: string, originUrl?: string): Promise; requestPassword(user: User, url: string, languageCode: LanguagesEnum, organizationId: string, originUrl?: string): Promise; inviteUser(inviteUserModel: IInviteUserModel): Promise; private createEmailRecord; createSMTPTransporter(): { host: string; port: number; secure: boolean; auth: { user: string; pass: string; }; }; private nodemailerSendEmail; }