import IAppServiceChannel from "./IAppServiceChannel";
import Log, { LogItem } from "./../core/Log";
export declare enum AppServiceProxyCommands {
    fsExists = "fsExists",
    fsFolderExists = "fsFolderExists",
    fsRenameFolder = "fsRenameFolder",
    fsDeleteFolder = "fsDeleteFolder",
    fsRootStorageExists = "fsRootStorageExists",
    fsMkdir = "fsMkdir",
    fsReadUtf8File = "fsReadUtf8File",
    fsReadFile = "fsReadFile",
    fsWriteUtf8File = "fsWriteUtf8File",
    fsWriteFile = "fsWriteFile",
    fsReaddir = "fsReaddir",
    fsStat = "fsStat",
    getDirname = "getDirname",
    getDedicatedServerStatus = "getDedicatedServerStatus",
    getDedicatedServerProjectDeployDir = "getDedicatedServerProjectDir",
    getDedicatedServerWorldDeployDir = "getDedicatedServerWorldDir",
    getMinecraftGameProjectDeployDir = "getMinecraftGameProjectDeployDir",
    getMinecraftGameWorldDeployDir = "getMinecraftGameWorldDeployDir",
    getIsDev = "getIsDev",
    openFolder = "openFolder",
    shellOpenPath = "shellOpenPath",
    shellOpenFolderInExplorer = "shellOpenFolderInExplorer",
    webSocketCommand = "webSocketCommand",
    dedicatedServerCommand = "dedicatedServerCommand",
    startWebSocketServer = "startWebSocketServer",
    stopWebSocketServer = "stopWebSocketServer",
    startDedicatedServer = "startDedicatedServer",
    stopDedicatedServer = "stopDedicatedServer",
    debugPause = "debugPause",
    debugResume = "debugResume",
    debugStartProfiler = "debugStartProfiler",
    debugStopProfiler = "debugStopProfiler",
    shellRecycleItem = "shellRecycleItem",
    reloadMct = "reloadMct",
    getContentSources = "getContentSources",
    minecraftShell = "minecraftShell",
    windowClose = "windowClose",
    windowRestore = "windowRestore",
    windowMove = "windowMove",
    logToConsole = "logToConsole",
    windowMinimize = "windowMinimize",
    windowMaximize = "windowMaximize",
    windowUpdate = "windowUpdate",
    windowLeftSide = "windowLeftSide",
    windowRightSide = "windowRightSide",
    getWindowState = "getWindowState",
    getPlatform = "getPlatform",
    appGetPath = "appGetPath",
    updateIAgree = "updateIAgree",
    convertFile = "convertFile"
}
export default class AppServiceProxy {
    static _api: IAppServiceChannel | undefined;
    static _pendingStringPromiseResolvers: ((value: string | PromiseLike<string> | undefined) => void)[];
    static _pendingArrayBufferPromiseResolvers: ((value: ArrayBuffer | PromiseLike<ArrayBuffer> | undefined) => void)[];
    static _pendingStringPromiseRejecters: ((reason?: any) => void)[];
    static _pendingArrayPromiseRejecters: ((reason?: any) => void)[];
    private static _onMessage;
    static get onMessage(): import("ste-events").IEvent<string, string>;
    static get hasAppService(): boolean;
    static get hasAppServiceOrDebug(): boolean;
    static get hasAppServiceOrSim(): boolean;
    static init(): void;
    static _handleLog(log: Log, item: LogItem): void;
    static logToConsole(message: string): Promise<void>;
    static send(commandName: AppServiceProxyCommands | string, data: any): any;
    static sendAsyncBinary(commandName: AppServiceProxyCommands | string, data: any): Promise<ArrayBuffer | undefined>;
    static sendBinaryAsync(commandName: AppServiceProxyCommands | string, data: any): Promise<string | undefined>;
    static sendAsync(commandName: AppServiceProxyCommands | string, data: any, ignoreInSim?: boolean): Promise<string | undefined>;
    static sendHost(serviceName: string, commandName: AppServiceProxyCommands | string, data: any): void;
    static openLinkExternal(url: string): void;
    private static _arrayBufferPromiseHandler;
    private static _stringPromiseHandler;
    private static _handleNewMessage;
}
