import type { Writable, Readable } from 'svelte/store'; import type { Anchor, CSSColorString, EmValue, EdgeKey, CustomWritable, XYPair, Direction, Node } from '.'; import type { PixelValue, RemValue } from '.'; import type { ComponentType } from 'svelte'; export type EdgeStyle = 'straight' | 'step' | 'bezier'; export type WritableEdge = { id: EdgeKey; source: Anchor | CursorAnchor; target: Anchor | CursorAnchor; type: Writable; color: Writable | CustomWritable | Readable; width: Writable; label?: EdgeLabel; animated: Writable; disconnect?: true; component: ComponentType | null; rendered: Writable; }; interface CursorNode { rotating: Writable; position: Readable; dimensions: { width: Writable; height: Writable; }; zIndex: Writable; } export interface CursorAnchor { id: null; position: Readable; offset: Writable; connected: Writable>; dynamic: Writable; edge: null; edgeColor: Writable; direction: Writable; inputKey: null; type: 'output'; mounted: Writable; moving: Readable; store: null; rotation: Readable; node: CursorNode; } export interface EdgeLabel { text: Writable; color: Writable; textColor: Writable; fontSize: Writable; dimensions: { width: Writable; height: Writable; }; borderRadius: Writable; } export interface EdgeConfig { type?: EdgeStyle; color?: Writable | CustomWritable | Readable; width?: number; label?: EdgeLabelConfig; animated?: boolean; disconnect?: true; raiseEdges?: boolean; edgesAbove?: boolean; } export interface EdgeLabelConfig { text: string; color?: CSSColorString; textColor?: CSSColorString; fontSize?: PixelValue | RemValue; dimensions?: { width: number; height: number; }; borderRadius?: number; } export type StepDirection = 'left' | 'right' | 'up' | 'down'; export type ArcKey = '1001' | '0110' | '100-1' | '0-110' | '-1001' | '0110' | '-100-1' | '0-110'; export type Connections = Array<[string | number, string | number] | string | number | null>; export type CustomEdgeKey = Set | 'cursor'; export {};