"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IMAPFolderInfo = 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 { IMAPFolderInfo: _IMAPFolderInfo } = bindings;
/**
 * IMAPFolderInfo Class
 *
 * @public
 */
class IMAPFolderInfo extends bindings.IMAPFolderInfo {
    constructor() {
        super();
        const handle = new _IMAPFolderInfo();
        this.handle = handle;
    }
    /**
     * Get uidNext
     *
     * @type {number}
     * @memberof IMAPFolderInfo
     */
    get uidNext() {
        return this.handle.uidNext;
    }
    /**
     * Set uidNext
     *
     * @memberof IMAPFolderInfo
     */
    set uidNext(uid) {
        this.handle.uidNext = uid;
    }
    /**
     * Get uidValidity
     *
     * @type {number}
     * @memberof IMAPFolderInfo
     */
    get uidValidity() {
        return this.handle.uidValidity;
    }
    /**
     * Set uidValidity
     *
     * @memberof IMAPFolderInfo
     */
    set uidValidity(uid) {
        this.handle.uidValidity = uid;
    }
    /**
     * Get modSequenceValue
     *
     * @type {number}
     * @memberof IMAPFolderInfo
     */
    get modSequenceValue() {
        return this.handle.modSequenceValue;
    }
    /**
     * Set modSequenceValue
     *
     * @memberof IMAPFolderInfo
     */
    set modSequenceValue(mod) {
        this.handle.modSequenceValue = mod;
    }
    /**
     * Get messageCount
     *
     * @type {number}
     * @memberof IMAPFolderInfo
     */
    get messageCount() {
        return this.handle.messageCount;
    }
    /**
     * Set messageCount
     *
     * @memberof IMAPFolderInfo
     */
    set messageCount(count) {
        this.handle.messageCount = count;
    }
    /**
     * Get firstUnseenUid
     *
     * @type {number}
     * @memberof IMAPFolderInfo
     */
    get firstUnseenUid() {
        return this.handle.firstUnseenUid;
    }
    /**
     * Set firstUnseenUid
     *
     * @memberof IMAPFolderInfo
     */
    set firstUnseenUid(uid) {
        this.handle.firstUnseenUid = uid;
    }
    /**
     * Get allowsNewPermanentFlags
     *
     * @type {number}
     * @memberof IMAPFolderInfo
     */
    get allowsNewPermanentFlags() {
        return this.handle.allowsNewPermanentFlags;
    }
    /**
     * Set allowsNewPermanentFlags
     *
     * @memberof IMAPFolderInfo
     */
    set allowsNewPermanentFlags(allow) {
        this.handle.allowsNewPermanentFlags = allow;
    }
}
exports.IMAPFolderInfo = IMAPFolderInfo;
//# sourceMappingURL=IMAPFolderInfo.js.map