import { type Writable } from 'svelte/store'; import type { Point } from '../..'; import type { Position } from '../Drag'; import { type InternalInputSocketState, type LiveConnection, type InternalOutputSocketState, type SocketBlueprint, Sockets, InternalInputSocket, InternalOutputSocket } from '../Sockets'; export declare type InternalNodeBlueprint, O = Record, ST = Record> = { inputs?: I; outputs?: O; title?: string; color?: string; className?: string; store?: ST; style?: S; component: C; deletable?: boolean; cloneable?: boolean; interactable?: boolean; }; export declare type InternalNode>, O = Record>, ST = Record> = Point & InternalNodeBlueprint & { type: string; }; export declare type NodeState = Point & { type: string; inputs?: Record; outputs?: Record; store?: Record; }; export declare type CurrentNodes = { registered: Writable>>; current: Writable>>; }; export declare type NodesState = { nodes: Writable>; restored: Writable; }; export declare type NodeConnection = { nodeId: string; socketId: string; }; export declare type CreateNodeOptions = Partial & { title?: string; color?: string; className?: string; store?: Record; style?: S; deletable?: boolean; cloneable?: boolean; interactable?: boolean; id?: string; inputs?: Record; outputs?: Record; }; export declare type UpdateNodeOptions = Partial & { title?: string; color?: string; className?: string; store?: Record; style?: S; deletable?: boolean; cloneable?: boolean; interactable?: boolean; id?: string; inputs?: Record>>; outputs?: Record>>; }; export declare type NodeResolution = { id: string; state: NodeState; node: InternalNode; }; export declare class Nodes { nodes: CurrentNodes; state: NodesState; connection: LiveConnection; position: Writable; readonly: Writable; inputs?: Record; }>; outputs?: Record; }>; sockets: Sockets; constructor(position: Writable, nodes: CurrentNodes, state: NodesState, connection: LiveConnection, readonly: Writable, inputs?: Record; }>, outputs?: Record; }>); addNode: (key: string, options?: CreateNodeOptions) => Promise>; updateNode: (id: string, options?: UpdateNodeOptions) => Promise>; connectNodes: (params: { input: NodeConnection; output: NodeConnection; }) => void; deleteNode: (id: string) => void; cloneNode: (id: string, position?: Point) => Promise>; clear: () => void; private restoreState; reset: (state: Record) => void; updateState: () => void; }