import { Protocol } from 'raas-core';
export declare class RaasClient {
    host: string;
    port: number;
    starting: boolean;
    connected: boolean;
    private socket;
    private connection;
    private installableUtil;
    private installationUtil;
    private runtimeUtil;
    private emitter;
    connect(timeout: number | undefined, host: string, port: number): Promise<void>;
    disconnect(): void;
    onConnected(listener: () => void): void;
    onDisconnected(listener: () => void): void;
    shutdownServer(): void;
    addInstallable(installable: Protocol.InstallableServer, timeout?: number): Promise<Protocol.Status>;
    updateInstallableServer(installable: Protocol.InstallableServer, timeout?: number): Promise<Protocol.Status>;
    deleteInstallableServer(installable: Protocol.InstallableServer, timeout?: number): Promise<Protocol.Status>;
    getAllInstallableServers(timeout?: number): Promise<Protocol.InstallableServer[]>;
    addInstalledServer(installation: Protocol.Installation, timeout?: number): Promise<Protocol.Status>;
    installServer(request: Protocol.InstallServerRequest, timeout?: number): Promise<Protocol.Status>;
    cancelInstallation(installing: Protocol.InstallingServer, timeout?: number): Promise<Protocol.Status>;
    deleteInstallation(installation: Protocol.Installation, timeout?: number): Promise<Protocol.Status>;
    updateInstallation(installation: Protocol.Installation, timeout?: number): Promise<Protocol.Status>;
    getAllInstalledServers(timeout?: number): Promise<Protocol.Installation[]>;
    getAllInstallingServers(timeout?: number): Promise<Protocol.InstallingServer[]>;
    startServer(config: Protocol.ServerRunConfiguration, timeout?: number): Promise<Protocol.ServerInstanceHandle>;
    stopServer(id: string, timeout?: number): Promise<Protocol.ServerInstanceHandle>;
    startAnalysis(config: Protocol.AnalysisRunConfiguration, timeout?: number): Promise<Protocol.Analysis>;
    cancelAnalysis(config: Protocol.Analysis, timeout?: number): Promise<Protocol.Analysis>;
    getAllAnalyses(timeout?: number): Promise<Protocol.Analysis[]>;
    getAllServerHandles(timeout?: number): Promise<Protocol.ServerInstanceHandle[]>;
    onInstallableServerAdded(listener: (arg: Protocol.InstallableServer) => void): void;
    onInstallableServerUpdated(listener: (arg: Protocol.InstallableServer) => void): void;
    onInstallableServerDeleted(listener: (arg: Protocol.InstallableServer) => void): void;
    onInstallingServer(listener: (arg: Protocol.InstallingServer) => void): void;
    onInstallingServerMessage(listener: (arg: Protocol.InstallingServer) => void): void;
    onInstallingServerFailed(listener: (arg: Protocol.InstallingServer) => void): void;
    onInstallingServerCancelled(listener: (arg: Protocol.InstallingServer) => void): void;
    onInstallingServerCompleted(listener: (arg: {
        installing: Protocol.InstallingServer;
        installation: Protocol.Installation;
    }) => void): void;
    onInstalledServerDeleted(listener: (arg: Protocol.Installation) => void): void;
    onInstalledServerUpdated(listener: (arg: {
        installation: Protocol.Installation;
        installable: Protocol.InstallableServer;
    }) => void): void;
    onStartingServer(listener: (arg: Protocol.ServerRunConfiguration) => void): void;
    onServerMessage(listener: (arg: {
        config: Protocol.ServerRunConfiguration;
        msg: string;
    }) => void): void;
    onErrorStartingServer(listener: (arg: {
        config: Protocol.ServerRunConfiguration;
        msg: string;
    }) => void): void;
    onServerStarted(listener: (arg: Protocol.ServerInstanceHandle) => void): void;
    onServerStopped(listener: (arg: Protocol.ServerInstanceHandle) => void): void;
    onAnalysisStarted(listener: (arg: Protocol.Analysis) => void): void;
    onAnalysisCancelled(listener: (arg: Protocol.Analysis) => void): void;
    onAnalysisMessage(listener: (arg: {
        config: Protocol.Analysis;
        msg: string;
    }) => void): void;
    onAnalysisCompleted(listener: (arg: {
        config: Protocol.Analysis;
        msg: string;
    }) => void): void;
    getListeners(eventName: string): Function[];
    removeListener(eventName: string, listener: (...args: any[]) => void): void;
    removeAllListeners(eventName: string): void;
}
