import { IPosition, ISize } from './generics' export interface IChart
{ offset: IPosition nodes: { [id: string]: INode
} links: { [id: string]: ILink
}
scale: number
properties?: P
/** System Temp */
selected: ISelectedOrHovered
hovered: ISelectedOrHovered
}
export interface ISelectedOrHovered {
type?: 'link' | 'node' | 'port'
id?: string
}
export interface INode<
TNodeProperties extends object = any,
TNodeType extends string = string,
TPortProperties extends object = any
> {
id: string
type: TNodeType
position: IPosition
orientation?: number
ports: {
[id: string]: IPort