import { CategoryId } from "./category"; import { EdgeId } from "./edge"; import { NodeId } from "./node"; import { Properties } from "./properties"; import { RelationshipId } from "./relationship"; import { EdgeStyle, NodeStyle, SerializedEdgeStyles, SerializedNodeStyles } from "./styles"; export type EdgeSnapshot = { id: EdgeId; relationship: RelationshipId; properties: Properties; sourceId: NodeId; targetId: NodeId; styles: SerializedEdgeStyles; }; export type NodeSnapshot = { id: NodeId; category: CategoryId; properties: Properties; collection?: NodeCollectionSnapshot; styles: SerializedNodeStyles; }; export interface NodeCollectionSnapshot { nodes: NodeId[]; edges: EdgeId[]; key: NodeId; } export interface GraphSnapshot { edges: EdgeSnapshot[]; nodes: NodeSnapshot[]; } export interface GraphSnapshotOptions { nodeStyleKeys?: NodeStyle[]; edgeStyleKeys?: EdgeStyle[]; }