import { ComputedRef, UnwrapRef, WatchStopHandle } from 'vue'; import { Edge, Path } from '../common/types'; import { Arc, Curve } from './edge'; import { VectorLine } from '../modules/calculation/line'; export interface EdgeObject { edgeId: string; edge: Edge; } export interface PathStateDatum { id: string; selected: boolean; hovered: boolean; selectable: ComputedRef; zIndex: ComputedRef; clickable: ComputedRef; hoverable: ComputedRef; path: Path; edges: EdgeObject[]; directions: boolean[]; stopWatchHandle: WatchStopHandle; } export type PathState = UnwrapRef; export type PathStates = Record; export interface EdgeLine { edgeId: string; source: string; target: string; line: VectorLine; direction: boolean; curve?: Curve; loop?: Arc; }