import WebSocket from "ws";
import * as http from "http";
import { MinecraftGameConnectionMode } from "../app/ICreatorToolsData";
import LocalEnvironment from "./LocalEnvironment";
export default class MinecraftWebSocketServer {
    private _port;
    server: http.Server | undefined;
    private _wss;
    private _ws;
    private _env;
    private _pendingCommands;
    private _pendingCommandIds;
    private _pendingRequestIds;
    private _pendingData;
    private _curEventIndex;
    private _eventSeed;
    private _onClientConnected;
    private _onClientDisconnected;
    private _onCommandCompleted;
    private _onEventReceived;
    private _currentCommandId;
    constructor(env: LocalEnvironment);
    get onCommandCompleted(): import("ste-events").IEvent<MinecraftWebSocketServer, {
        requestId: string;
        result: object;
        data: any;
    }>;
    get onEventReceived(): import("ste-events").IEvent<MinecraftWebSocketServer, object>;
    get onClientConnected(): import("ste-events").IEvent<MinecraftWebSocketServer, string>;
    get onClientDisconnected(): import("ste-events").IEvent<MinecraftWebSocketServer, string>;
    runCommand(command: string, requestId: string, data: any): void;
    executeNextCommand(): void;
    getWebSocketWorldPath(state: MinecraftGameConnectionMode): string;
    closeServer(): void;
    openServer(): void;
    _handleMessage(message: string): void;
    _handleConnection(ws: WebSocket): void;
    _handleDisconnection(ws: WebSocket): void;
}
