import { Cache, StateObject } from "@hpcc-js/util";
import { IConnection, IOptions } from "../connection";
import { GetTargetClusterInfo, MachineService } from "../services/wsMachine";
import { TopologyService, TpTargetClusterQuery } from "../services/wsTopology";
import { Machine } from "./machine";
export declare class TargetClusterCache extends Cache<{
    Name: string;
}, TargetCluster> {
    constructor();
}
export interface TpTargetClusterEx {
    MachineInfoEx: GetTargetClusterInfo.MachineInfoEx[];
}
export declare type UTargetClusterState = TpTargetClusterQuery.TpTargetCluster & TpTargetClusterEx;
export declare type ITargetClusterState = TpTargetClusterQuery.TpTargetCluster | TpTargetClusterEx;
export declare class TargetCluster extends StateObject<UTargetClusterState, ITargetClusterState> implements UTargetClusterState {
    protected connection: TopologyService;
    protected machineConnection: MachineService;
    readonly Name: string;
    readonly Prefix: string;
    readonly Type: string;
    readonly TpClusters: TpTargetClusterQuery.TpClusters;
    readonly TpEclCCServers: TpTargetClusterQuery.TpEclCCServers;
    readonly TpEclServers: TpTargetClusterQuery.TpEclServers;
    readonly TpEclAgents: TpTargetClusterQuery.TpEclAgents;
    readonly TpEclSchedulers: TpTargetClusterQuery.TpEclSchedulers;
    readonly MachineInfoEx: GetTargetClusterInfo.MachineInfoEx[];
    readonly CMachineInfoEx: Machine[];
    static attach(optsConnection: IOptions | IConnection | TopologyService, name: string, state?: ITargetClusterState): TargetCluster;
    protected constructor(optsConnection: IOptions | IConnection | TopologyService, name: string);
    fetchMachines(request?: GetTargetClusterInfo.Request): Promise<Machine[]>;
    machineStats(): {
        maxDisk: number;
        meanDisk: number;
    };
}
//# sourceMappingURL=targetCluster.d.ts.map