import { Cache, Edge, Graph, StateObject, StringAnyMap, Subgraph, Vertex, XMLNode } from "@hpcc-js/util";
import { WsWorkunits } from "../services/wsWorkunits.ts";
import { BaseScope } from "./scope.ts";
import { Timer } from "./timer.ts";
import { Workunit } from "./workunit.ts";
export interface ECLGraphEx extends WsWorkunits.ECLGraph {
    Time: number;
}
export declare class ECLGraph extends StateObject<ECLGraphEx, ECLGraphEx> implements ECLGraphEx {
    protected wu: Workunit;
    get properties(): ECLGraphEx;
    get Name(): string;
    get Label(): string;
    get Type(): string;
    get Complete(): boolean;
    get WhenStarted(): string;
    get WhenFinished(): string;
    get Time(): number;
    get Running(): boolean;
    get RunningId(): number;
    get Failed(): boolean;
    constructor(wu: Workunit, eclGraph: WsWorkunits.ECLGraph, eclTimers: Timer[]);
    fetchScopeGraph(subgraphID?: string): Promise<ScopeGraph>;
}
export declare class GraphCache extends Cache<WsWorkunits.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;
