import { IConnection, IOptions } from "../../../../connection.ts";
import { Service } from "../../../../espConnection.ts";
export declare namespace WsMachine {
    type int = number;
    type long = number;
    type unsignedInt = number;
    enum ThresholdType {
        THRESHOLD_PERCENTAGE = 0,
        THRESHOLD_MB = 1
    }
    enum TpMachineType {
        ALLNODES = "ALLNODES",
        THORMACHINES = "THORMACHINES",
        HOLEMACHINES = "HOLEMACHINES",
        ROXIEMACHINES = "ROXIEMACHINES",
        MACHINES = "MACHINES",
        AVAILABLEMACHINES = "AVAILABLEMACHINES",
        DROPZONE = "DROPZONE",
        STANDBYNNODE = "STANDBYNNODE",
        THORSPARENODES = "THORSPARENODES",
        HOLESTANDBYNODES = "HOLESTANDBYNODES"
    }
    interface GetComponentStatusRequest {
    }
    interface Exception {
        Code: string;
        Audience: string;
        Source: string;
        Message: string;
    }
    interface Exceptions {
        Source: string;
        Exception: Exception[];
    }
    interface StatusReport {
        StatusID: int;
        Status: string;
        StatusDetails: string;
        Reporter: string;
        TimeReported: long;
        TimeReportedStr: string;
        TimeCached: string;
        URL: string;
    }
    interface StatusReports {
        StatusReport: StatusReport[];
    }
    interface ComponentStatus {
        ComponentTypeID: int;
        ComponentType: string;
        EndPoint: string;
        StatusID: int;
        Status: string;
        TimeReported: long;
        TimeReportedStr: string;
        Reporter: string;
        StatusReports: StatusReports;
    }
    interface ComponentStatusList {
        ComponentStatus: ComponentStatus[];
    }
    interface GetComponentStatusResponse {
        Exceptions: Exceptions;
        StatusCode: int;
        Status: string;
        ComponentType: string;
        EndPoint: string;
        ComponentStatusID: int;
        ComponentStatus: string;
        TimeReported: long;
        TimeReportedStr: string;
        Reporter: string;
        StatusReport: StatusReport;
        ComponentStatusList: ComponentStatusList;
    }
    interface Component {
        Type: string;
        Name: string;
    }
    interface Components {
        Component: Component[];
    }
    interface GetComponentUsageRequest {
        Components?: Components;
        BypassCachedResult?: boolean;
    }
    interface DiskUsage {
        Name: string;
        Path: string;
        Description: string;
        InUse: long;
        Available: long;
        PercentAvailable: int;
        Exception: string;
    }
    interface DiskUsages {
        DiskUsage: DiskUsage[];
    }
    interface MachineUsage {
        Name: string;
        NetAddress: string;
        Description: string;
        Exception: string;
        DiskUsages: DiskUsages;
    }
    interface MachineUsages {
        MachineUsage: MachineUsage[];
    }
    interface ComponentUsage {
        Type: string;
        Name: string;
        Description: string;
        Exception: string;
        MachineUsages: MachineUsages;
    }
    interface ComponentUsages {
        ComponentUsage: ComponentUsage[];
    }
    interface GetComponentUsageResponse {
        Exceptions: Exceptions;
        ComponentUsages: ComponentUsages;
        UsageTime: string;
    }
    interface Addresses {
        Item: string[];
    }
    interface GetMachineInfoRequest {
        Addresses?: Addresses;
        SortBy?: string;
        ClusterType?: TpMachineType;
        Cluster?: string;
        OldIP?: string;
        Path?: string;
        AddProcessesToFilter?: string;
        ApplyProcessFilter?: boolean;
        GetProcessorInfo?: boolean;
        GetStorageInfo?: boolean;
        LocalFileSystemsOnly?: boolean;
        GetSoftwareInfo?: boolean;
        MemThreshold?: int;
        DiskThreshold?: int;
        CpuThreshold?: int;
        AutoRefresh?: int;
        MemThresholdType?: ThresholdType;
        DiskThresholdType?: ThresholdType;
        UserName?: string;
        Password?: string;
        SecurityString?: string;
    }
    interface RequestInfo {
        Addresses: Addresses;
        SortBy: string;
        ClusterType: TpMachineType;
        Cluster: string;
        OldIP: string;
        Path: string;
        AddProcessesToFilter: string;
        ApplyProcessFilter: boolean;
        GetProcessorInfo: boolean;
        GetStorageInfo: boolean;
        LocalFileSystemsOnly: boolean;
        GetSoftwareInfo: boolean;
        MemThreshold: int;
        DiskThreshold: int;
        CpuThreshold: int;
        AutoRefresh: int;
        MemThresholdType: ThresholdType;
        DiskThresholdType: ThresholdType;
        SecurityString: string;
        UserName: string;
        Password: string;
        EnableSNMP: boolean;
    }
    interface Columns {
        Item: string[];
    }
    interface ProcessorInfo {
        Type: string;
        Load: int;
    }
    interface Processors {
        ProcessorInfo: ProcessorInfo[];
    }
    interface StorageInfo {
        Description: string;
        Type: string;
        Available: long;
        PercentAvail: int;
        Total: long;
        Failures: int;
    }
    interface Storage {
        StorageInfo: StorageInfo[];
    }
    interface SWRunInfo {
        Name: string;
        Instances: int;
        State: int;
    }
    interface Running {
        SWRunInfo: SWRunInfo[];
    }
    interface PhysicalMemory {
        Description: string;
        Type: string;
        Available: long;
        PercentAvail: int;
        Total: long;
        Failures: int;
    }
    interface VirtualMemory {
        Description: string;
        Type: string;
        Available: long;
        PercentAvail: int;
        Total: long;
        Failures: int;
    }
    interface ComponentInfo {
        Condition: int;
        State: int;
        UpTime: string;
    }
    interface MachineInfoEx {
        Address: string;
        ConfigAddress: string;
        Name: string;
        ProcessType: string;
        DisplayType: string;
        Description: string;
        AgentVersion: string;
        Contact: string;
        Location: string;
        UpTime: string;
        ComponentName: string;
        ComponentPath: string;
        RoxieState: string;
        RoxieStateDetails: string;
        OS: int;
        ProcessNumber: int;
        Channels: unsignedInt;
        Processors: Processors;
        Storage: Storage;
        Running: Running;
        PhysicalMemory: PhysicalMemory;
        VirtualMemory: VirtualMemory;
        ComponentInfo: ComponentInfo;
        Exception: string;
    }
    interface Machines {
        MachineInfoEx: MachineInfoEx[];
    }
    interface GetMachineInfoResponse {
        Exceptions: Exceptions;
        RequestInfo: RequestInfo;
        Columns: Columns;
        Machines: Machines;
        TimeStamp: string;
        UserName: string;
        Password: string;
        AcceptLanguage: string;
    }
    interface GetMachineInfoRequestEx {
        Addresses: Addresses;
        ClusterType: TpMachineType;
    }
    interface GetMachineInfoResponseEx {
        Exceptions: Exceptions;
        AcceptLanguage: string;
        Machines: Machines;
    }
    interface ShowColumns {
        Item: string[];
    }
    interface MetricsRequest {
        SecurityString?: string;
        Addresses?: Addresses;
        ShowColumns?: ShowColumns;
        AutoRefresh?: int;
        SelectAllChecked?: boolean;
        Cluster?: string;
        AutoUpdate?: boolean;
    }
    interface MetricsResponse {
        Exceptions: Exceptions;
        FieldInformation: string;
        Metrics: string;
        AutoRefresh: int;
        Cluster: string;
        SelectAllChecked: boolean;
        AutoUpdate: boolean;
        AcceptLanguage: string;
    }
    interface NodeGroups {
        Item: string[];
    }
    interface GetNodeGroupUsageRequest {
        NodeGroups?: NodeGroups;
        BypassCachedResult?: boolean;
    }
    interface NodeGroupUsage {
        Name: string;
        Description: string;
        Exception: string;
        ComponentUsages: ComponentUsages;
    }
    interface NodeGroupUsages {
        NodeGroupUsage: NodeGroupUsage[];
    }
    interface GetNodeGroupUsageResponse {
        Exceptions: Exceptions;
        NodeGroupUsages: NodeGroupUsages;
        UsageTime: string;
    }
    interface TargetClusters {
        Item: string[];
    }
    interface GetTargetClusterInfoRequest {
        TargetClusters?: TargetClusters;
        AddProcessesToFilter?: string;
        ApplyProcessFilter?: boolean;
        GetProcessorInfo?: boolean;
        GetStorageInfo?: boolean;
        LocalFileSystemsOnly?: boolean;
        GetSoftwareInfo?: boolean;
        MemThreshold?: int;
        DiskThreshold?: int;
        CpuThreshold?: int;
        AutoRefresh?: int;
        MemThresholdType?: ThresholdType;
        DiskThresholdType?: ThresholdType;
    }
    interface Processes {
        MachineInfoEx: MachineInfoEx[];
    }
    interface TargetClusterInfo {
        Name: string;
        Type: string;
        Processes: Processes;
    }
    interface TargetClusterInfoList {
        TargetClusterInfo: TargetClusterInfo[];
    }
    interface GetTargetClusterInfoResponse {
        Exceptions: Exceptions;
        Columns: Columns;
        RequestInfo: RequestInfo;
        TargetClusterInfoList: TargetClusterInfoList;
        TimeStamp: string;
        AcceptLanguage: string;
    }
    interface GetTargetClusterUsageRequest {
        TargetClusters?: TargetClusters;
        BypassCachedResult?: boolean;
    }
    interface TargetClusterUsage {
        Name: string;
        Description: string;
        Exception: string;
        ComponentUsages: ComponentUsages;
    }
    interface TargetClusterUsages {
        TargetClusterUsage: TargetClusterUsage[];
    }
    interface GetTargetClusterUsageResponse {
        Exceptions: Exceptions;
        TargetClusterUsages: TargetClusterUsages;
        UsageTime: string;
    }
    interface ws_machinePingRequest {
    }
    interface ws_machinePingResponse {
    }
    interface UpdateComponentStatusRequest {
        Reporter?: string;
        ComponentStatusList?: ComponentStatusList;
    }
    interface UpdateComponentStatusResponse {
        Exceptions: Exceptions;
        StatusCode: int;
        Status: string;
    }
}
export declare class MachineServiceBase extends Service {
    constructor(optsConnection: IOptions | IConnection);
    GetComponentStatus(request: Partial<WsMachine.GetComponentStatusRequest>): Promise<WsMachine.GetComponentStatusResponse>;
    GetComponentUsage(request: Partial<WsMachine.GetComponentUsageRequest>): Promise<WsMachine.GetComponentUsageResponse>;
    GetMachineInfo(request: Partial<WsMachine.GetMachineInfoRequest>): Promise<WsMachine.GetMachineInfoResponse>;
    GetMachineInfoEx(request: Partial<WsMachine.GetMachineInfoRequestEx>): Promise<WsMachine.GetMachineInfoResponseEx>;
    GetMetrics(request: Partial<WsMachine.MetricsRequest>): Promise<WsMachine.MetricsResponse>;
    GetNodeGroupUsage(request: Partial<WsMachine.GetNodeGroupUsageRequest>): Promise<WsMachine.GetNodeGroupUsageResponse>;
    GetTargetClusterInfo(request: Partial<WsMachine.GetTargetClusterInfoRequest>): Promise<WsMachine.GetTargetClusterInfoResponse>;
    GetTargetClusterUsage(request: Partial<WsMachine.GetTargetClusterUsageRequest>): Promise<WsMachine.GetTargetClusterUsageResponse>;
    Ping(request: Partial<WsMachine.ws_machinePingRequest>): Promise<WsMachine.ws_machinePingResponse>;
    UpdateComponentStatus(request: Partial<WsMachine.UpdateComponentStatusRequest>): Promise<WsMachine.UpdateComponentStatusResponse>;
}
