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