import { Cache, Edge, Graph, StateObject, StringAnyMap, Subgraph, Vertex, XMLNode } from "@hpcc-js/util";
import { WUInfo } from "../services/wsWorkunits";
import { BaseScope } from "./scope";
import { Timer } from "./timer";
import { Workunit } from "./workunit";
export interface ECLGraphEx extends WUInfo.ECLGraph {
    Time: number;
}
export declare class ECLGraph extends StateObject<ECLGraphEx, ECLGraphEx> implements ECLGraphEx {
    protected wu: Workunit;
    readonly properties: ECLGraphEx;
    readonly Name: string;
    readonly Label: string;
    readonly Type: string;
    readonly Complete: boolean;
    readonly WhenStarted: string;
    readonly WhenFinished: string;
    readonly Time: number;
    readonly Running: boolean;
    readonly RunningId: number;
    readonly Failed: boolean;
    constructor(wu: Workunit, eclGraph: WUInfo.ECLGraph, eclTimers: Timer[]);
    fetchScopeGraph(subgraphID?: string): Promise<ScopeGraph>;
}
export declare class GraphCache extends Cache<WUInfo.ECLGraph, ECLGraph> {
    constructor();
}
export declare class XGMMLGraph extends Graph<StringAnyMap, StringAnyMap, StringAnyMap> {
}
export declare class XGMMLSubgraph extends Subgraph<StringAnyMap, StringAnyMap, StringAnyMap> {
}
export declare class XGMMLVertex extends Vertex<StringAnyMap, StringAnyMap, StringAnyMap> {
}
export declare class XGMMLEdge extends Edge<StringAnyMap, StringAnyMap, StringAnyMap> {
}
export declare function createXGMMLGraph(id: string, graphs: XMLNode): XGMMLGraph;
export declare class ScopeGraph extends Graph<BaseScope, BaseScope, BaseScope> {
}
export declare class ScopeSubgraph extends Subgraph<BaseScope, BaseScope, BaseScope> {
}
export declare class ScopeVertex extends Vertex<BaseScope, BaseScope, BaseScope> {
}
export declare class ScopeEdge extends Edge<BaseScope, BaseScope, BaseScope> {
}
export declare function createGraph(scopes: BaseScope[]): ScopeGraph;
//# sourceMappingURL=graph.d.ts.map