import { OnModuleDestroy } from '@nestjs/common';
import { SentMessageInfo, Transporter } from 'nodemailer';
import { MailerOptions, TransportType } from './interfaces/mailer-options.interface';
import { MailerTransportFactory as IMailerTransportFactory } from './interfaces/mailer-transport-factory.interface';
import { ISendMailOptions } from './interfaces/send-mail-options.interface';
import { MailerEventService } from './mailer-event.service';
export declare class MailerService implements OnModuleDestroy {
    private readonly mailerOptions;
    private readonly transportFactory;
    private readonly eventService?;
    private transporter;
    private transporters;
    private templateAdapter;
    private initTemplateAdapter;
    private readonly mailerLogger;
    constructor(mailerOptions: MailerOptions, transportFactory: IMailerTransportFactory, eventService?: MailerEventService);
    onModuleDestroy(): Promise<void>;
    private closeTransporter;
    private validateTransportOptions;
    private createTransporter;
    private setupTransporters;
    private verifyTransporter;
    verifyAllTransporters(): Promise<boolean>;
    private interpolateSubject;
    private interpolateHtml;
    sendMail(sendMailOptions: ISendMailOptions): Promise<SentMessageInfo>;
    private executeSend;
    private withTimeout;
    private compileTextTemplate;
    private resolveI18nTemplate;
    getTransporter(name?: string): Transporter;
    addTransporter(transporterName: string, config: TransportType): string;
    removeTransporter(transporterName: string): boolean;
}
