export interface Edge { v: string; w: string; name?: string; } export declare class Graph { private _isDirected; private _isMultigraph; private _isCompound; private _label; private _defaultNodeLabelFn; private _defaultEdgeLabelFn; private _nodes; private _parent; private _children; private _in; private _preds; private _out; private _sucs; private _edgeObjs; private _edgeLabels; private _nodeCount; private _edgeCount; constructor(opts?: { directed?: boolean; multigraph?: boolean; compound?: boolean; }); isDirected(): boolean; isMultigraph(): boolean; isCompound(): boolean; setGraph(label: TGraph): this; graph(): TGraph; setDefaultNodeLabel(newDefault: TNode | ((name?: string) => TNode)): this; nodeCount(): number; nodes(): string[]; sources(): string[]; sinks(): string[]; setNodes(vs: string[], value?: TNode): Graph; setNode(v: string, value?: TNode): this; node(v: string): TNode; hasNode(v: string): boolean; removeNode(v: string): Graph; setParent(v: string, parent?: string): Graph; _removeFromParentsChildList(v: string): void; parent(v: string): string; children(v?: string): string[] | undefined; predecessors(v: string): string[] | undefined; successors(v: string): string[] | undefined; neighbors(v: string): string[] | undefined; isLeaf(v: string): boolean; filterNodes(filter: (v: string) => boolean): Graph; setDefaultEdgeLabel(newDefault: TEdge | ((v?: string, w?: string, name?: string) => TEdge)): this; edgeCount(): number; edges(): Edge[]; setPath(vs: string[], value?: TEdge): this; setEdge(v: string | { v: string; w: string; name?: string; }, w?: string | TEdge, value?: TEdge, name?: string): this; edge(v: string | Edge, w?: string, name?: string): TEdge; hasEdge(v: string, w?: string, name?: string): boolean; removeEdge(v: string | Edge, w?: string, name?: string): this; inEdges(v: string, u?: string): Edge[]; outEdges(v: string, w?: string): Edge[]; nodeEdges(v: string, w?: string): Edge[]; } export declare class GraphLike extends Graph { }