import { type StreamSource } from '@rimbu/stream'; import type { RelatedTo } from '@rimbu/common'; import type { GraphTypesContextImpl } from '@rimbu/graph/custom'; import type { Link, WithGraphValues } from '../../common/index.mjs'; import { GraphElement } from '../../common/index.mjs'; export declare class GraphBuilder = WithGraphValues> { readonly isDirected: boolean; readonly context: TpG['context']; source?: TpG["nonEmpty"] | undefined; connectionSize: number; constructor(isDirected: boolean, context: TpG['context'], source?: TpG["nonEmpty"] | undefined); _linkMap?: TpG['linkMapBuilder']; _lock: number; checkLock(): void; get linkMap(): TpG['linkMapBuilder']; get isEmpty(): boolean; get nodeSize(): number; hasNode: (node: RelatedTo) => boolean; hasConnection: (node1: RelatedTo, node2: RelatedTo) => boolean; addNodeInternal: (node: N) => boolean; addNode: (node: N) => boolean; addNodes: (nodes: StreamSource) => boolean; removeNodeInternal: (node: RelatedTo) => boolean; removeNode: (node: RelatedTo) => boolean; removeNodes: (nodes: StreamSource>) => boolean; connectInternal: (node1: N, node2: N) => boolean; connect: (node1: N, node2: N) => boolean; connectAll: (connections: StreamSource) => boolean; connectIfNodesExist: (node1: N, node2: N) => boolean; addGraphElement: (element: GraphElement) => boolean; addGraphElements: (elements: StreamSource>) => boolean; disconnectInternal: (node1: RelatedTo, node2: RelatedTo) => boolean; disconnect: (node1: RelatedTo, node2: RelatedTo) => boolean; disconnectAll: (connections: StreamSource>>) => boolean; build: () => TpG["normal"]; }