import { EmailerSendTypes } from '../enums/EmailerSendTypes'; import { EmailData } from '../interfaces/EmailerSend'; import InlineCss from 'inline-css'; interface BaseEmailerConstructor { logPath?: string; makeCssInline?: boolean; makeCssInlineOptions?: InlineCss.Options; nodemailer?: { host: string; port: number; secure: boolean; auth?: { user: string; pass: string; }; }; sendType: EmailerSendTypes; templateGlobalObject?: any; templatePath?: string; } interface DefaultEmailerConstructor extends BaseEmailerConstructor { fallbackFrom: EmailData; fallbackSubject: string; sendType: Exclude; } interface ReturnEmailerConstructor extends BaseEmailerConstructor { fallbackFrom?: EmailData; fallbackSubject?: string; sendType: EmailerSendTypes.return | EmailerSendTypes.log | EmailerSendTypes.file; } export type EmailerConstructor = DefaultEmailerConstructor | ReturnEmailerConstructor; export {};