"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.pathSeparator = '/';
var ShallowDirectory = /** @class */ (function () {
    function ShallowDirectory(name, fullPath) {
        this.name = name;
        this.fullPath = fullPath;
        this.type = 'dir';
    }
    return ShallowDirectory;
}());
exports.ShallowDirectory = ShallowDirectory;
var Directory = /** @class */ (function () {
    function Directory(name, fullPath, children) {
        if (children === void 0) { children = []; }
        this.name = name;
        this.fullPath = fullPath;
        this.children = children;
        this.type = 'dir';
    }
    return Directory;
}());
exports.Directory = Directory;
var File = /** @class */ (function () {
    function File(name, fullPath, content) {
        this.name = name;
        this.fullPath = fullPath;
        this.type = 'file';
        if (content)
            this.content = content;
    }
    return File;
}());
exports.File = File;
function isFile(node) {
    if (!node)
        return false;
    return node.type === 'file';
}
exports.isFile = isFile;
function isDir(node) {
    if (!node)
        return false;
    return node.type === 'dir';
}
exports.isDir = isDir;
function isDisposable(fs) {
    return !!fs && typeof fs.dispose === 'function';
}
exports.isDisposable = isDisposable;
exports.fileSystemEventNames = ['unexpectedError', 'fileCreated', 'fileChanged', 'fileDeleted', 'directoryCreated', 'directoryDeleted'];
exports.fileSystemMethods = ['saveFile', 'deleteFile', 'deleteDirectory', 'loadTextFile', 'loadDirectoryTree', 'ensureDirectory', 'loadDirectoryChildren'];
//# sourceMappingURL=api.js.map