import IFolder from "./IFolder";
import IFile from "./IFile";
import HttpFile from "./HttpFile";
import HttpStorage from "./HttpStorage";
import FolderBase from "./FolderBase";
export default class HttpFolder extends FolderBase implements IFolder {
    private _name;
    folders: {
        [name: string]: HttpFolder | undefined;
    };
    files: {
        [name: string]: HttpFile | undefined;
    };
    private _storage;
    private _parentFolder;
    private _pendingLoadRequests;
    private _isLoading;
    get storage(): HttpStorage;
    get parentFolder(): HttpFolder | null;
    get name(): string;
    get fullPath(): string;
    constructor(storage: HttpStorage, parentFolder: HttpFolder | null, folderName: string);
    scanForChanges(): Promise<void>;
    exists(): Promise<boolean>;
    ensureExists(): Promise<boolean>;
    ensureFile(name: string): HttpFile;
    moveTo(newStorageRelativePath: string): Promise<boolean>;
    _removeFile(file: IFile): void;
    _addExistingFile(file: HttpFile): void;
    ensureFolder(name: string): HttpFolder;
    deleteFile(name: string): Promise<boolean>;
    createFile(name: string): Promise<IFile>;
    /**
     * Remove a file from the folder's file list (used after deletion).
     */
    removeFile(name: string): void;
    deleteThisFolder(): Promise<boolean>;
    deleteAllFolderContents(): Promise<boolean>;
    load(force?: boolean): Promise<Date>;
}
