/* * This file is part of the kernelstudio package. * * (c) 2014-2026 zlin * * For the full copyright and license information, please view the LICENSE file * that was distributed with this source code. */ import type { NullableString } from '@/types'; export interface GraphComponentElement { id: number, name: NullableString, type: NullableString, description: NullableString, } export interface GraphPosition { x: number; y: number; } export interface GraphRect { width?: number; height?: number; x?: number; y?: number; } export interface GraphDraggableElement { id: number | null, key?: NullableString, name: NullableString, description: NullableString, category: NullableString, draggable: boolean, parent?: GraphDraggableElement, children: GraphDraggableElement[] [key: string]: unknown; } export interface GraphBaseElement { id: number; key: NullableString; name: NullableString; description: NullableString; type: NullableString; width: number; height: number; position: GraphPosition; category: NullableString; element?: GraphDraggableElement; components?: GraphComponentElement[] [key: string]: unknown; } export interface ElementParameter { id: number, templateId: number, paramKey: NullableString, dataType: NullableString, defaultValue: NullableString, description: NullableString, templateType: NullableString, } export interface ElementVariable { key: NullableString; name: NullableString; value: NullableString; defaults: NullableString; unit: NullableString; } export interface GraphTaskElement extends GraphBaseElement { template: number; templateType: NullableString, inputs: any; outputs: any; order: number; variables: ElementVariable[]; parameters: ElementParameter[]; children?: GraphTaskElement[], [key: string]: unknown; } export interface ModelElement extends GraphBaseElement { edges: GraphEdgeElement[]; } export interface GraphEdgeElement { id: number; key: NullableString; source: NullableString; target: NullableString; attrs: Record; router: Record; connector: any; [key: string]: unknown; } export interface GraphContainer { edges: GraphEdgeElement[]; nodes: GraphTaskElement[]; }