import { Readable } from 'stream'; import { ParsedMail } from 'mailparser'; export interface Address { name: string; address: string; } export interface EmailHeaders { subject: string; from: Address[]; to: Address[]; cc?: Address[]; date: Date; inReplyTo?: string; messageId: string; } export interface MessageHeaders { subject: string; from: Address[]; to: Address[]; cc: Address[]; date: string | Date; } export interface HighlightOptions { highlightKeywords?: string[]; highlightCaseSensitive?: boolean; } export interface ParseEmlOptions extends HighlightOptions { ignoreEmbedded?: boolean; } export interface ParseMsgOptions extends HighlightOptions {} export type EmailAttachment = any; export type MessageAttachment = any; export class EmlParser { constructor(fileReadStream: Readable); parseEml(options?: ParseEmlOptions): Promise; parseMsg(options?: ParseMsgOptions): Promise; getEmailHeaders(): Promise; getMessageHeaders(): Promise; getEmailBodyHtml(options?: HighlightOptions): Promise; getMessageBodyHtml(options?: HighlightOptions): Promise; getEmailAsHtml(options?: HighlightOptions & { includeSubject?: boolean }): Promise; getMessageAsHtml(options?: HighlightOptions & { includeSubject?: boolean }): Promise; convertEmailToStream( type?: 'pdf' | 'jpeg' | 'png', orientation?: 'potrait' | 'landscape', format?: 'A3' | 'A4' | 'A5' | 'Legal' | 'Letter' | 'Tabloid', outerOptions?: HighlightOptions ): Promise; convertMessageToStream( type?: 'pdf' | 'jpeg' | 'png', orientation?: 'potrait' | 'landscape', format?: 'A3' | 'A4' | 'A5' | 'Legal' | 'Letter' | 'Tabloid', outerOptions?: HighlightOptions ): Promise; convertEmailToBuffer( type?: 'pdf' | 'jpeg' | 'png', orientation?: 'potrait' | 'landscape', format?: 'A3' | 'A4' | 'A5' | 'Legal' | 'Letter' | 'Tabloid', outerOptions?: HighlightOptions ): Promise; convertMessageToBuffer( type?: 'pdf' | 'jpeg' | 'png', orientation?: 'potrait' | 'landscape', format?: 'A3' | 'A4' | 'A5' | 'Legal' | 'Letter' | 'Tabloid', outerOptions?: HighlightOptions ): Promise; getEmailAttachments(options?: { ignoreEmbedded?: boolean }): Promise; getMessageAttachments(): Promise; getEmailEmbeddedFiles(): Promise; } export = EmlParser;