/**
 * Json objects sent between the server and the client
 */
export declare namespace Protocol {
    interface Attribute {
        type: string;
        description: string;
        defaultVal: any;
    }
    interface Attributes {
        attributes: {
            [index: string]: Attribute;
        };
    }
    interface CommandLineDetails {
        cmdLine: string[];
        workingDir: string;
        envp: string[];
        properties: {
            [index: string]: string;
        };
    }
    interface DiscoveryPath {
        filepath: string;
    }
    interface LaunchAttributesRequest {
        id: string;
        mode: string;
    }
    interface LaunchParameters {
        mode: string;
        params: ServerAttributes;
    }
    interface ServerAttributes {
        serverType: string;
        id: string;
        attributes: {
            [index: string]: any;
        };
    }
    interface ServerBean {
        location: string;
        typeCategory: string;
        specificType: string;
        name: string;
        version: string;
        fullVersion: string;
        serverAdapterTypeId: string;
    }
    interface ServerHandle {
        id: string;
        type: ServerType;
    }
    interface ServerLaunchMode {
        mode: string;
        desc: string;
    }
    interface ServerProcess {
        server: ServerHandle;
        processId: string;
    }
    interface ServerProcessOutput {
        server: ServerHandle;
        processId: string;
        streamType: number;
        text: string;
    }
    interface ServerStartingAttributes {
        initiatePolling: boolean;
        request: LaunchParameters;
    }
    interface ServerStateChange {
        server: ServerHandle;
        state: number;
    }
    interface ServerType {
        id: string;
        visibleName: string;
        description: string;
    }
    interface StartServerResponse {
        status: Status;
        details: CommandLineDetails;
    }
    interface Status {
        severity: number;
        code: number;
        message: string;
        trace: string;
        ok: boolean;
        plugin: string;
    }
    interface StopServerAttributes {
        id: string;
        force: boolean;
    }
    interface VMDescription {
        id: string;
        installLocation: string;
        version: string;
    }
    interface VMHandle {
        id: string;
    }
}
