import CreatorTools, { CreatorToolsMinecraftErrorStatus, CreatorToolsMinecraftState } from "./CreatorTools";
import IMinecraft, { IMinecraftMessage, PrepareAndStartResultType } from "./IMinecraft";
import Project from "./Project";
import MinecraftPush from "./MinecraftPush";
import GameStateManager from "../minecraft/GameStateManager";
import IFolder from "../storage/IFolder";
import IStorage from "../storage/IStorage";
import IActionSetData from "../actions/IActionSetData";
export default class DeploymentStorageMinecraft implements IMinecraft {
    private _creatorTools;
    state: CreatorToolsMinecraftState;
    private _onStateChanged;
    private _onRefreshed;
    private _project;
    private _gameStateManager;
    errorStatus?: CreatorToolsMinecraftErrorStatus;
    errorMessage?: string;
    worldFolder: IFolder | undefined;
    projectFolder: IFolder | undefined;
    worldContentStorage: IStorage | undefined;
    worldProject: Project | undefined;
    private _onWorldFolderReady;
    private _onProjectFolderReady;
    private _onMessage;
    get onWorldFolderReady(): import("ste-events").IEvent<IMinecraft, IFolder>;
    get onProjectFolderReady(): import("ste-events").IEvent<IMinecraft, IFolder>;
    get onMessage(): import("ste-events").IEvent<IMinecraft, IMinecraftMessage>;
    get canDeployFiles(): boolean;
    get onRefreshed(): import("ste-events").IEvent<IMinecraft, CreatorToolsMinecraftState>;
    get onStateChanged(): import("ste-events").IEvent<IMinecraft, CreatorToolsMinecraftState>;
    constructor(creatorTools: CreatorTools);
    updateStatus(): Promise<CreatorToolsMinecraftState>;
    get activeProject(): Project | undefined;
    set activeProject(newProject: Project | undefined);
    get gameStateManager(): GameStateManager;
    notifyStateChanged(newVal: CreatorToolsMinecraftState): void;
    initialize(): Promise<void>;
    prepare(force?: boolean): Promise<void>;
    runCommand(command: string): Promise<string | undefined>;
    runActionSet(actionSet: IActionSetData): Promise<string | undefined>;
    processExternalMessage(command: string, data: string): void;
    pushWorld(): Promise<string>;
    syncWithDeployment(): Promise<void>;
    canPrepare(): boolean;
    prepareAndStart(push: MinecraftPush): Promise<{
        type: PrepareAndStartResultType;
        worldName: any;
    }>;
    stop(): Promise<void>;
    start(): Promise<void>;
}
