1 |
|
2 |
|
3 | import { EventEmitter } from 'events';
|
4 |
|
5 | import { Transport, TransportOptions } from '..';
|
6 |
|
7 | import * as shared from './shared';
|
8 |
|
9 | import Mail = require('./mailer');
|
10 | import MailMessage = require('./mailer/mail-message');
|
11 | import MimeNode = require('./mime-node');
|
12 |
|
13 | declare namespace JSONTransport {
|
14 | type MailOptions = Mail.Options;
|
15 |
|
16 | interface Options extends MailOptions, TransportOptions {
|
17 | jsonTransport: true;
|
18 | skipEncoding?: boolean | undefined;
|
19 | }
|
20 |
|
21 | interface SentMessageInfo {
|
22 |
|
23 | envelope: MimeNode.Envelope;
|
24 |
|
25 | messageId: string;
|
26 |
|
27 | message: string;
|
28 | accepted: Array<string | Mail.Address>;
|
29 | rejected: Array<string | Mail.Address>;
|
30 | pending: Array<string | Mail.Address>;
|
31 | response: string;
|
32 | }
|
33 | }
|
34 |
|
35 | declare class JSONTransport implements Transport<JSONTransport.SentMessageInfo> {
|
36 | options: JSONTransport.Options;
|
37 |
|
38 | logger: shared.Logger;
|
39 | mailer: Mail<JSONTransport.SentMessageInfo>;
|
40 |
|
41 | name: string;
|
42 | version: string;
|
43 |
|
44 | constructor(options: JSONTransport.Options);
|
45 |
|
46 | /** Compiles a mailcomposer message and forwards it to handler that sends it */
|
47 | send(mail: MailMessage<JSONTransport.SentMessageInfo>, callback: (err: Error | null, info: JSONTransport.SentMessageInfo) => void): void;
|
48 | }
|
49 |
|
50 | export = JSONTransport;
|