UNPKG

@selenite/graph-editor

Version:

A graph editor for visual programming, based on rete and svelte.

31 lines (30 loc) 1.27 kB
import { ClassicPreset } from 'rete'; import type { DataType, SocketType } from '../plugins/typed-sockets'; import type { Node } from '../nodes/Node.svelte'; declare const socketDatastructures: readonly ["scalar", "array"]; export type SocketDatastructure = (typeof socketDatastructures)[number]; export type SocketValueWithDatastructure<T, D extends SocketDatastructure> = D extends 'scalar' ? T : D extends 'array' ? T[] : never; export type Scalar<S extends DataType = DataType> = Socket<S, 'scalar'>; export declare class Socket<S extends SocketType = SocketType, D extends SocketDatastructure = SocketDatastructure> extends ClassicPreset.Socket { datastructure: D; readonly isRequired: boolean; type: S; value: unknown; selected: boolean; readonly node: Node; displayLabel: boolean | undefined; port: ClassicPreset.Port<Socket<SocketType, "scalar" | "array">> | undefined; element: HTMLElement | undefined; constructor({ name, datastructure, isRequired, type, displayLabel, node }: { name?: string; isRequired?: boolean; datastructure?: D; type?: S; node: Node; displayLabel?: boolean; }); select(): void; deselect(): void; toggleSelection(): void; } export {};