import { Edge } from './edge';
import { Node } from './node';
import { NodeCollection } from './nodeCollection';
export declare class Graph extends Node {
    noEmptySubgraphs(): boolean;
    hasSubgraphs(): boolean;
    subgraphs(): IterableIterator<Graph>;
    isEmpty(): boolean;
    setEdge(sourceId: string, targetId: string): Edge;
    isCollapsed: boolean;
    get shallowNodes(): IterableIterator<Node>;
    get deepNodes(): IterableIterator<Node>;
    constructor(id?: string);
    findNode(id: string): Node;
    get edges(): IterableIterator<Edge>;
    deepEdges(): Generator<Edge, void, unknown>;
    isConsistent(): boolean;
    nodeIsConsistent(n: Node): boolean;
    removeNode(n: Node): void;
    addNode(n: Node): Node;
    addEdge(n: Edge): void;
    nodeCollection: NodeCollection;
    get shallowNodeCount(): number;
    get nodeCountDeep(): number;
    get edgeCount(): number;
    liftNode(n: Node): Node;
}
export declare function shallowConnectedComponents(graph: Graph): IterableIterator<Node[]>;
