Number of edges.
Number of nodes.
Add an edge with Qualified Edge metadata (D1). Auto-generates an edge key for multi-edge support.
the generated edge ID
Remove all nodes and edges.
Iterate all edges.
Iterate all node IDs.
StaticfromGet the source and target of an edge.
Get edges between two specific nodes (multi-edge support).
Get neighbor node IDs at depth 1.
Retrieve node attributes by ID. Returns undefined if not found.
Get all edges incident to a node.
Get all node IDs as an array.
Get the current property-key registry (readonly snapshot).
Check whether an edge exists.
Check whether a node exists.
Subscribe to a UGM event. Returns an unsubscribe function.
Remove an edge by ID.
Remove a node and all its incident edges.
Serialize to a JSON-compatible object.
Update Qualified Edge metadata. Merges with existing.
Update properties on an existing edge. Merges with existing.
Update properties on an existing node. Merges with existing.
@g3t/core public API.
Framework-agnostic (D6): zero React, zero Zustand, zero Cytoscape imports.
The boundary here is enforced two ways: (1) physical separation (packages/core/src/ cannot relatively-import from packages/react/src/), and (2) the module-boundary test in test/module-boundary.test.ts which dynamically imports every entry below and asserts none of them pull in React.