"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IMAPMessage = void 0;
const tslib_1 = require("tslib");
const path = tslib_1.__importStar(require("path"));
// tslint:disable-next-line: no-var-requires
let bindings;
try {
    bindings = require(path.join(__dirname, "../../lib/binding/trusted_mailcore2.node"));
}
catch (e) {
    bindings = require(path.join(__dirname, "../../lib/binding/trusted_mailcore2_no_crypto.node"));
}
// tslint:disable-next-line
const { IMAPMessage: _IMAPMessage } = bindings;
/**
 * IMAPMessage Class
 *
 * @public
 */
class IMAPMessage extends bindings.IMAPMessage {
    constructor() {
        super();
        const handle = new _IMAPMessage();
        this.handle = handle;
    }
    /**
     * Get sequenceNumber
     *
     * @type {number}
     * @memberof IMAPMessage
     */
    get sequenceNumber() {
        return this.handle.sequenceNumber;
    }
    /**
     * Set sequenceNumber
     *
     * @memberof IMAPMessage
     */
    set sequenceNumber(sequenceNumberV) {
        this.handle.sequenceNumber = sequenceNumberV;
    }
    /**
     * Get uid
     *
     * @type {number}
     * @memberof IMAPMessage
     */
    get uid() {
        return this.handle.uid;
    }
    /**
     * Set uid
     *
     * @memberof IMAPMessage
     */
    set uid(uidV) {
        this.handle.uid = uidV;
    }
    /**
     * Get size
     *
     * @type {number}
     * @memberof IMAPMessage
     */
    get size() {
        return this.handle.size;
    }
    /**
     * Set size
     *
     * @memberof IMAPMessage
     */
    set size(sizeV) {
        this.handle.size = sizeV;
    }
    /**
     * Message flags
     *
     * @type {MessageFlag}
     * @memberof IMAPMessage
     */
    get flags() {
        return this.handle.flags;
    }
    /**
     * Set message flags
     *
     * @memberof IMAPMessage
     */
    set flags(flags) {
        this.handle.flags = flags;
    }
    /**
     * Original message flags
     *
     * @type {MessageFlag}
     * @memberof IMAPMessage
     */
    get originalFlags() {
        return this.handle.originalFlags;
    }
    /**
     * Set original message flags
     *
     * @memberof IMAPMessage
     */
    set originalFlags(flags) {
        this.handle.originalFlags = flags;
    }
    htmlRendering(folder) {
        return this.handle.htmlRendering(folder);
    }
    description() {
        return this.handle.description();
    }
}
exports.IMAPMessage = IMAPMessage;
//# sourceMappingURL=IMAPMessage.js.map