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; }; };