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