import IFolder from "./IFolder";
import IFile from "./IFile";
import File from "./File";
import Storage from "./Storage";
import FolderBase from "./FolderBase";
export default class Folder extends FolderBase implements IFolder {
    private _name;
    private _path;
    folders: {
        [name: string]: Folder | undefined;
    };
    files: {
        [name: string]: File | undefined;
    };
    private _storage;
    private _parentFolder;
    get storage(): Storage;
    get parentFolder(): Folder | null;
    get name(): string;
    get fullPath(): string;
    constructor(storage: Storage, parentFolder: Folder | null, parentPath: string, folderName: string);
    exists(): Promise<boolean>;
    ensureExists(): Promise<boolean>;
    scanForChanges(): Promise<void>;
    ensureFile(name: string): File;
    _removeFile(file: IFile): void;
    _addExistingFile(file: File): void;
    ensureFolder(name: string): Folder;
    deleteThisFolder(): Promise<boolean>;
    deleteAllFolderContents(): Promise<boolean>;
    _addExistingFolderToParent(folder: Folder): void;
    moveTo(newStorageRelativePath: string): Promise<boolean>;
    createFile(name: string): Promise<IFile>;
    load(force?: boolean): Promise<Date>;
}
