import { type Readable, type Writable } from 'svelte/store'; import type { Point } from '../..'; import type { Position } from '../Drag'; import type { InternalNode } from '../Nodes'; export declare type SocketConnection = { connectedNodeId: string; connectedSocketId: string; }; export declare type SocketBlueprint = { type: string; defaultValue?: T; color?: string; }; export declare type InternalInputSocket = { type: string; value: Readable; color?: string; connection: Writable; coordinates: Readonly; disabled?: boolean; }; export declare type InternalOutputSocket = { type: string; value: Writable; color?: string; coordinates: Readonly; trigger?: Readonly; disabled?: boolean; }; export declare type InternalInputSocketState = { type: string; connection?: SocketConnection; }; export declare type InternalOutputSocketState = { type: string; value?: unknown; }; export declare type ConnectionSocket = { type: 'input' | 'output'; nodeId: string; socketId: string; }; export declare type LiveConnection = { show: Writable; state: Writable<{ points: { p1: Point; p2: Point; }; socket?: ConnectionSocket; } | undefined>; }; export declare class Sockets { nodes: Writable>>; editorPosition: Writable; liveConnection: LiveConnection; constructor(editorPosition: Writable, nodes: Writable>>, liveConnection: LiveConnection); private update; createInput: (type: string, defaultValue?: T | undefined, state?: { connection?: SocketConnection; }) => InternalInputSocket; createOutput: (type: string, defaultValue?: T | undefined) => InternalOutputSocket; connect(type: 'input' | 'output', newConnection: { nodeId: string; socketId: string; socketType: string; }): void; }