export interface GraphRequestParams { attribute: string[]; viewMode?: 'references' | 'relations'; depth?: number; } export interface Tree { root: TreeNode; } export type ElementIdentity = { hash: string; type: string; name: string; }; export type TreeNode = { element: ElementIdentity; children: TreeNode[]; }; export interface GraphData { attributes: string[]; nodes: Node[]; links: Edge[]; } export interface Node { isParent: boolean; name: string; hash: string; type: string; groups: number[]; } export interface Edge { source: string; target: string; attribute: string; } export type LevelConfigBase = { attributeKey: string; elementType: string[]; name: string; }; export type LevelConfigRelation = LevelConfigBase & { type: "relation"; }; export type LevelConfigGroup = LevelConfigBase & { allowHierarchy?: boolean; projection: string[]; type: "group"; }; export type PerspectiveGraphConfig = { perspective: { id: string; levels: (LevelConfigRelation | LevelConfigGroup)[]; name: string; }; };