import IFile from "../storage/IFile";
import IFolder from "../storage/IFolder";
import { ProjectItemErrorStatus, ProjectItemType } from "./IProjectItemData";
import IProjectItemVariant, { ProjectItemVariantType } from "./IProjectItemVariant";
import ProjectItem from "./ProjectItem";
import ProjectVariant from "./ProjectVariant";
import MCWorld from "../minecraft/MCWorld";
export default class ProjectItemVariant {
    private _item;
    private _data;
    private _file;
    private _folder;
    private _projectVariant;
    private _isFileContentProcessed;
    private _isLoaded;
    private _onFileRetrieved;
    private _onFolderRetrieved;
    private _onLoaded;
    private _isDefault;
    constructor(parentItem: ProjectItem, data: IProjectItemVariant, projectVariant: ProjectVariant);
    get projectVariant(): ProjectVariant;
    get errorMessage(): string | undefined;
    set errorMessage(newErrorMessage: string | undefined);
    get isLoaded(): boolean;
    get onLoaded(): import("ste-events").IEvent<ProjectItemVariant, ProjectItemVariant>;
    get onFileRetrieved(): import("ste-events").IEvent<ProjectItemVariant, IFile>;
    get onFolderRetrieved(): import("ste-events").IEvent<ProjectItemVariant, IFolder>;
    get label(): string;
    get variantType(): ProjectItemVariantType;
    get file(): IFile;
    setFile(file: IFile | null): void;
    get itemType(): ProjectItemType;
    get projectPath(): string | undefined;
    set variantType(newVariantType: ProjectItemVariantType);
    set projectPath(newProjectPath: string | undefined);
    get folder(): IFolder;
    setFolder(file: IFolder | null): void;
    _handleMCWorldLoaded(world: MCWorld, worldA: MCWorld): void;
    _fireLoadedEvent(): void;
    get errorStatus(): ProjectItemErrorStatus | undefined;
    set errorStatus(errorStatus: ProjectItemErrorStatus | undefined);
    ensureFileStorage(): Promise<IFile>;
    loadFileStorage(): Promise<void>;
    ensureAndLoadFileStorage(): Promise<IFile>;
    ensureFolderStorage(): Promise<IFolder>;
}
