/// import JSONTransport = require("./lib/json-transport"); import Mail = require("./lib/mailer"); import MailMessage = require("./lib/mailer/mail-message"); import SendmailTransport = require("./lib/sendmail-transport"); import SESTransport = require("./lib/ses-transport"); import SMTPPool = require("./lib/smtp-pool"); import SMTPTransport = require("./lib/smtp-transport"); import StreamTransport = require("./lib/stream-transport"); export type SendMailOptions = Mail.Options; export type Transporter = Mail; export type SentMessageInfo = any; export interface Transport { mailer?: Transporter | undefined; name: string; version: string; send(mail: MailMessage, callback: (err: Error | null, info: T) => void): void; verify?(callback: (err: Error | null, success: true) => void): void; verify?(): Promise; close?(): void; } export interface TransportOptions { component?: string | undefined; } export interface TestAccount { user: string; pass: string; smtp: { host: string; port: number; secure: boolean }; imap: { host: string; port: number; secure: boolean }; pop3: { host: string; port: number; secure: boolean }; web: string; } export function createTransport( transport: SMTPPool | SMTPPool.Options, defaults?: SMTPPool.Options, ): Transporter; export function createTransport( transport: SendmailTransport | SendmailTransport.Options, defaults?: SendmailTransport.Options, ): Transporter; export function createTransport( transport: StreamTransport | StreamTransport.Options, defaults?: StreamTransport.Options, ): Transporter; export function createTransport( transport: JSONTransport | JSONTransport.Options, defaults?: JSONTransport.Options, ): Transporter; export function createTransport( transport: SESTransport | SESTransport.Options, defaults?: SESTransport.Options, ): Transporter; export function createTransport( transport?: SMTPTransport | SMTPTransport.Options | string, defaults?: SMTPTransport.Options, ): Transporter; // eslint-disable-next-line @definitelytyped/no-unnecessary-generics export function createTransport( transport: Transport | TransportOptions, defaults?: TransportOptions, ): Transporter; export function createTestAccount( apiUrl: string, callback: (err: Error | null, testAccount: TestAccount) => void, ): void; export function createTestAccount(callback: (err: Error | null, testAccount: TestAccount) => void): void; export function createTestAccount(apiUrl?: string): Promise; export function getTestMessageUrl(info: SESTransport.SentMessageInfo | SMTPTransport.SentMessageInfo): string | false;