@cull/imap
Version:
A simple, configurable javascript interface exposing mailboxes and messages via IMAP.
77 lines (76 loc) • 2.2 kB
TypeScript
/**
* __A Mailbox__
*
* A remote message folder.
* @link https://tools.ietf.org/html/rfc3501
*/
export interface Mailbox {
name: string;
delimiter: string;
attributes: string[];
children?: Mailbox[];
}
export default Mailbox;
/**
* Mailbox flags the server has communicated, boolean indicates changes persist (`PERMANENTFLAGS`)
* @link https://tools.ietf.org/html/rfc3501#section-7.1
* @link https://tools.ietf.org/html/rfc3501#section-7.2.6
*/
export declare type Flags = Map<string, boolean>;
/**
* Mailbox UID-related values UIDVALIDITY and UIDNEXT
* @link https://tools.ietf.org/html/rfc3501#section-2.3.1.1
*/
export interface UID {
/**
* UIDNEXT: the next unique identifier value of the mailbox.
* @link https://tools.ietf.org/html/rfc3501#section-2.3.1.1
*/
next?: string;
/**
* UIDVALIDITY: the unique identifier validity value of the mailbox.
* @link https://tools.ietf.org/html/rfc3501#section-2.3.1.1
*/
validity?: string;
}
/**
* __A Selected Mailbox__
*
* Identical to an unselected mailbox (a remote message folder) but with additional information.
* @link https://tools.ietf.org/html/rfc3501#section-6.3.1
*/
export declare class SelectedMailbox implements Mailbox {
/**
* Mailbox name
* @link https://tools.ietf.org/html/rfc3501#section-7.2.2
*/
name: string;
/**
* Mailbox hierarchy delimeter
* @link https://tools.ietf.org/html/rfc3501#section-7.2.2
*/
delimiter: string;
/**
* Mailbox name attributes
* @link https://tools.ietf.org/html/rfc3501#section-7.2.2
*/
attributes: string[];
flags: Flags;
/**
* `READ-ONLY` vs `READ-WRITE` access for the selected mailbox
* @link https://tools.ietf.org/html/rfc3501#section-6.3.1
*/
writeable?: boolean;
/**
* Number of messages in this mailbox.
* @link https://tools.ietf.org/html/rfc3501#section-7.3.1
*/
exists: number;
/**
* Number of messages in this mailbox with the `\Recent` flag set.
* @link https://tools.ietf.org/html/rfc3501#section-7.3.2
*/
recent: number;
uid: UID;
constructor(name: any);
}