export interface ImapConfig { host: string; port: number; user: string; password: string; } export interface ImapEnvelope { uid: number; seq: number; from: string; to: string; subject: string; date: string; flags: string[]; size: number; messageId: string; } export interface ImapFolder { name: string; delimiter: string; flags: string[]; } export declare class ImapClient { private config; private socket; private tagCounter; private buffer; private responseResolve; private pendingLines; private pendingTag; private connected; constructor(config: ImapConfig); private nextTag; connect(): Promise; private processBuffer; private commandTimeout; private sendCommand; login(): Promise; listFolders(): Promise; selectFolder(folder: string): Promise<{ exists: number; recent: number; }>; fetchEnvelopes(start: number, count: number): Promise; fetchEnvelopesByUid(uids: number[]): Promise; private parseEnvelopes; private parseEnvelopeParts; private extractAddress; fetchBody(uid: number): Promise; search(criteria: string): Promise; setFlags(uid: number, flags: string, mode?: '+' | '-'): Promise; deleteMessage(uid: number): Promise; moveMessage(uid: number, destFolder: string): Promise; createFolder(name: string): Promise; deleteFolder(name: string): Promise; getUnreadCount(folder?: string): Promise; decodeHeader(value: string): string; private sanitizeImapInput; private escapeQuoted; logout(): Promise; disconnect(): void; }