"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IMAPFolder = 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 { IMAPFolder: _IMAPFolder } = bindings;
/**
 * IMAPFolder Class
 *
 * @public
 */
class IMAPFolder extends bindings.IMAPFolder {
    constructor() {
        super();
        const handle = new _IMAPFolder();
        this.handle = handle;
    }
    /**
     * Get path
     *
     * @type {string}
     * @memberof IMAPFolder
     */
    get path() {
        return this.handle.path;
    }
    /**
     * Set path
     *
     * @memberof IMAPFolder
     */
    set path(pathV) {
        this.handle.path = pathV;
    }
    /**
     * Get delimiter
     *
     * @type {string}
     * @memberof IMAPFolder
     */
    get delimiter() {
        return this.handle.delimiter;
    }
    /**
     * Set delimiter
     *
     * @memberof IMAPFolder
     */
    set delimiter(delimiterV) {
        this.handle.delimiter = delimiterV;
    }
    /**
     * Folder description
     *
     * @memberof IMAPSession
     */
    description() {
        return this.handle.description();
    }
    /**
     * Get flags
     *
     * @type {FolderFlag}
     * @memberof IMAPFolder
     */
    get flags() {
        return this.handle.flags;
    }
    /**
     * Set flags
     *
     * @memberof IMAPFolder
     */
    set flags(flagsVal) {
        this.handle.flags = flagsVal;
    }
}
exports.IMAPFolder = IMAPFolder;
//# sourceMappingURL=IMAPFolder.js.map