import { QueueMessage } from '../../interfaces/mq';
import { EmailTemplateService } from '../email-template.service';
import { PdfService } from '../pdf.service';
import { DiskFileService } from '../file';
import { IMail, MailAttachmentWrapper } from "../../interfaces";
import { PublisherFactory } from '../queues/publisher-factory.service';
import { SettingService } from '../setting.service';
export declare class ElasticEmailService implements IMail {
    private readonly publisherFactory;
    private readonly emailTemplateService;
    private readonly pdfService;
    private readonly fileService;
    private readonly settingService;
    private readonly logger;
    private readonly emailsApi;
    constructor(publisherFactory: PublisherFactory<any>, emailTemplateService: EmailTemplateService, pdfService: PdfService, fileService: DiskFileService, settingService: SettingService);
    sendEmailUsingTemplate(to: string, templateName: string, templateParams: any, shouldQueueEmails?: boolean, parentEntity?: any, parentEntityId?: any): Promise<void>;
    sendEmail(to: string, subject: string, body: string, shouldQueueEmails?: boolean, parentEntity?: any, parentEntityId?: any, wrapperAttachments?: MailAttachmentWrapper[]): Promise<void>;
    sendEmailAsynchronously(message: QueueMessage<any>): void;
    sendEmailSynchronously(message: QueueMessage<any>): Promise<void>;
    private toAttachmentWrapper;
    private toMessageAttachment;
    private getAttachmentAsPDF;
}
//# sourceMappingURL=elastic-email.service.d.ts.map