import * as Immutable from 'immutable'; import { Table, Column, RowType } from "../table"; import { Tuple2 } from '../types'; import { Primitive } from "./base"; export declare class TableGraph { private readonly _adj; private readonly _nodes; private constructor(); static fromTopology(nodes: Immutable.Map, adj: Table>): TableGraph; static createEmpty(): TableGraph; hasEdgeSlot(fromNodeId: NodeIdT, fromSlotId: SlotIdT, toNodeId: NodeIdT, toSlotId: SlotIdT): boolean; updateNode(nodeId: NodeIdT, newNode: DataT): TableGraph; private update; from(nodeId: NodeIdT): Immutable.Set; to(nodeId: NodeIdT): Immutable.Set; fromSlot(nodeId: NodeIdT, slotId: SlotIdT): Immutable.Seq.Indexed>; toSlot(nodeId: NodeIdT, slotId: SlotIdT): Immutable.Seq.Indexed>; removeEdge(fromNodeId: NodeIdT, toNodeId: NodeIdT): TableGraph; removeEdgeSlot(fromNodeId: NodeIdT, fromSlotId: SlotIdT, toNodeId: NodeIdT, toSlotId: SlotIdT): TableGraph; addEdgeSlot(fromNodeId: NodeIdT, fromSlotId: SlotIdT, toNodeId: NodeIdT, toSlotId: SlotIdT): TableGraph; addNode(nodeId: NodeIdT, data: DataT): TableGraph; removeNode(nodeId: NodeIdT): TableGraph; removeNodeSlot(nodeId: NodeIdT, slotId: SlotIdT): TableGraph; getEdges(): Immutable.Seq.Indexed<{ fromNodeId: any; toNodeId: any; }>; getEdgesSlots(): Immutable.Seq.Indexed<{ fromNodeId: NodeIdT; fromSlotId: SlotIdT; toNodeId: NodeIdT; toSlotId: SlotIdT; }>; nodes(): Immutable.Seq.Keyed; node(nodeId: NodeIdT): DataT; topologicalSort(): Array; get adj(): Table>; } export declare namespace TableGraph { function ColumnsC(): Columns; type Columns = { fromNodeId: Column; fromSlotId: Column; toNodeId: Column; toSlotId: Column; }; type Row = RowType>; }