@linkdlab/funcnodes_react_flow 0.4.10 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/funcnodes_react_flow.css +1 -1
  2. package/dist/index.cjs.js +625 -371
  3. package/dist/index.d.ts +1810 -17
  4. package/dist/index.es.js +66732 -37883
  5. package/dist/index.umd.js +625 -371
  6. package/package.json +29 -10
  7. package/dist/browser_index.d.ts +0 -8
  8. package/dist/frontend/assets/fontawsome.d.ts +0 -21
  9. package/dist/frontend/assets/mui.d.ts +0 -8
  10. package/dist/frontend/datarenderer/data_renderer_overlay.d.ts +0 -3
  11. package/dist/frontend/datarenderer/default_data_overlay_views.d.ts +0 -6
  12. package/dist/frontend/datarenderer/default_data_preview_renderer.d.ts +0 -5
  13. package/dist/frontend/datarenderer/default_data_view_renderer.d.ts +0 -13
  14. package/dist/frontend/datarenderer/default_handle_previews.d.ts +0 -4
  15. package/dist/frontend/datarenderer/default_inline_renderer.d.ts +0 -5
  16. package/dist/frontend/datarenderer/default_input_renderer.d.ts +0 -17
  17. package/dist/frontend/datarenderer/default_output_renderer.d.ts +0 -9
  18. package/dist/frontend/datarenderer/images.d.ts +0 -19
  19. package/dist/frontend/datarenderer/rendermappings.d.ts +0 -204
  20. package/dist/frontend/dialog.d.ts +0 -20
  21. package/dist/frontend/edge.d.ts +0 -4
  22. package/dist/frontend/funcnodesreactflow/index.d.ts +0 -8
  23. package/dist/frontend/funcnodesreactflow/react_flow_layer.d.ts +0 -7
  24. package/dist/frontend/header/index.d.ts +0 -4
  25. package/dist/frontend/index.d.ts +0 -0
  26. package/dist/frontend/layout/components.d.ts +0 -36
  27. package/dist/frontend/layout/fullscreenelement.d.ts +0 -17
  28. package/dist/frontend/layout/smoothexpand.d.ts +0 -22
  29. package/dist/frontend/lib.d.ts +0 -10
  30. package/dist/frontend/node/body_data_renderer.d.ts +0 -3
  31. package/dist/frontend/node/index.d.ts +0 -4
  32. package/dist/frontend/node/io/handle_renderer.d.ts +0 -3
  33. package/dist/frontend/node/io/index.d.ts +0 -3
  34. package/dist/frontend/node/io/io.d.ts +0 -15
  35. package/dist/frontend/node/io/iodataoverlay.d.ts +0 -10
  36. package/dist/frontend/node/io/nodeinput.d.ts +0 -10
  37. package/dist/frontend/node/io/nodeoutput.d.ts +0 -6
  38. package/dist/frontend/node/node.d.ts +0 -25
  39. package/dist/frontend/node/nodesettings.d.ts +0 -3
  40. package/dist/frontend/utils/colorpicker.d.ts +0 -22
  41. package/dist/frontend/utils/jsondata.d.ts +0 -5
  42. package/dist/frontend/utils/progressbar.d.ts +0 -46
  43. package/dist/frontend/utils/select.d.ts +0 -17
  44. package/dist/frontend/utils/table.d.ts +0 -10
  45. package/dist/funcnodes/datastructures.d.ts +0 -51
  46. package/dist/funcnodes/funcnodesworker.d.ts +0 -147
  47. package/dist/funcnodes/index.d.ts +0 -4
  48. package/dist/funcnodes/websocketworker.d.ts +0 -45
  49. package/dist/funcnodes/workermanager.d.ts +0 -34
  50. package/dist/plugin/helper.d.ts +0 -2
  51. package/dist/plugin/index.d.ts +0 -7
  52. package/dist/plugin/v0/index.d.ts +0 -2
  53. package/dist/plugin/v1/index.d.ts +0 -2
  54. package/dist/plugin/v1/upgrader.d.ts +0 -34
  55. package/dist/states/edge.d.ts +0 -7
  56. package/dist/states/edge.t.d.ts +0 -16
  57. package/dist/states/fnrfzst.d.ts +0 -9
  58. package/dist/states/fnrfzst.t.d.ts +0 -182
  59. package/dist/states/index.d.ts +0 -7
  60. package/dist/states/lib.d.ts +0 -3
  61. package/dist/states/lib.t.d.ts +0 -45
  62. package/dist/states/node/newnode.d.ts +0 -4
  63. package/dist/states/node/update_funcs.d.ts +0 -9
  64. package/dist/states/node/update_io.d.ts +0 -3
  65. package/dist/states/node/update_node.d.ts +0 -6
  66. package/dist/states/nodespace.d.ts +0 -3
  67. package/dist/states/nodespace.t.d.ts +0 -16
  68. package/dist/states/reactflow.d.ts +0 -8
  69. package/dist/states/reactflow.t.d.ts +0 -11
  70. package/dist/types/versioned/v0/index.d.ts +0 -5
  71. package/dist/types/versioned/v0/io.t.d.ts +0 -29
  72. package/dist/types/versioned/v0/node.t.d.ts +0 -75
  73. package/dist/types/versioned/v0/plugins.t.d.ts +0 -37
  74. package/dist/types/versioned/v0/rendering.t.d.ts +0 -42
  75. package/dist/types/versioned/v0/rendermappings.t.d.ts +0 -27
  76. package/dist/types/versioned/v1/edge.t.d.ts +0 -6
  77. package/dist/types/versioned/v1/index.d.ts +0 -6
  78. package/dist/types/versioned/v1/io.t.d.ts +0 -52
  79. package/dist/types/versioned/v1/node.t.d.ts +0 -65
  80. package/dist/types/versioned/v1/plugins.t.d.ts +0 -39
  81. package/dist/types/versioned/v1/rendering.t.d.ts +0 -1
  82. package/dist/types/versioned/v1/rendermappings.t.d.ts +0 -53
  83. package/dist/types/versioned/versions.t.d.ts +0 -3
  84. package/dist/utils/autolayout/force.d.ts +0 -2
  85. package/dist/utils/autolayout/index.d.ts +0 -2
  86. package/dist/utils/autolayout/txt.d.ts +0 -15
  87. package/dist/utils/data.d.ts +0 -12
  88. package/dist/utils/debugger.d.ts +0 -5
  89. package/dist/utils/helperfunctions.d.ts +0 -16
  90. package/dist/utils/index.d.ts +0 -3
  91. package/dist/utils/logger.d.ts +0 -26
  92. package/dist/utils/objects.d.ts +0 -142
package/dist/index.d.ts CHANGED
@@ -1,17 +1,1810 @@
1
- import { default as FuncnodesReactFlow, FuncNodesContext } from './frontend/funcnodesreactflow';
2
- import { default as WebSocketWorker } from './funcnodes/websocketworker';
3
- import { default as helperfunctions } from './utils/helperfunctions';
4
- import { default as FuncNodesReactFlowZustand } from './states';
5
- import { FuncNodesWorker } from './funcnodes';
6
- import { RenderMappingProvider, RenderMappingContext } from './frontend/datarenderer/rendermappings';
7
- import { FuncnodesReactFlowProps, FuncNodesReactFlowZustandInterface, ProgressState } from './states/fnrfzst.t';
8
- import { default as ReactFlowLayer } from './frontend/funcnodesreactflow/react_flow_layer';
9
- import { deep_update } from './utils';
10
- import { WorkerProps } from './funcnodes/funcnodesworker';
11
- import { LimitedDeepPartial } from './utils/objects';
12
- import { NodeContext, NodeContextType } from './frontend/node/node';
13
- import { latest as latest_types, v1 as v1_types, v0 as v0_types } from './types/versioned/versions.t';
14
- import * as React from "react";
15
- declare const FuncNodes: (props: LimitedDeepPartial<FuncnodesReactFlowProps>) => React.JSX.Element;
16
- export { FuncNodes, WebSocketWorker, helperfunctions, FuncNodesReactFlowZustand, FuncNodesContext, ReactFlowLayer, RenderMappingProvider, deep_update, FuncNodesWorker, FuncnodesReactFlow, NodeContext, RenderMappingContext, };
17
- export type { FuncNodesReactFlowZustandInterface, ProgressState, WorkerProps, FuncnodesReactFlowProps, NodeContextType, latest_types, v1_types, v0_types, };
1
+ import { Connection } from '@xyflow/react';
2
+ import { Edge } from '@xyflow/react';
3
+ import { EdgeChange } from '@xyflow/react';
4
+ import { JSX } from 'react';
5
+ import { Node as Node_2 } from '@xyflow/react';
6
+ import { NodeChange } from '@xyflow/react';
7
+ import { NodeDimensionChange } from '@xyflow/react';
8
+ import { NodePositionChange } from '@xyflow/react';
9
+ import { OnConnect } from '@xyflow/react';
10
+ import { OnEdgesChange } from '@xyflow/react';
11
+ import { OnNodesChange } from '@xyflow/react';
12
+ import { ReactFlowInstance } from '@xyflow/react';
13
+ import { StoreApi } from 'zustand';
14
+ import { UseBoundStore } from 'zustand';
15
+ import { useReactFlow } from '@xyflow/react';
16
+
17
+ /**
18
+ * Abstract base class for handler classes.
19
+ */
20
+ declare abstract class AbstractFuncNodesReactFlowHandleHandler {
21
+ protected context: FuncNodesReactFlowHandlerContext;
22
+ constructor(context: FuncNodesReactFlowHandlerContext);
23
+ protected get nodespaceManager(): NodeSpaceManager;
24
+ protected get libManager(): LibManager;
25
+ protected get workerManager(): WorkerManagerHandler;
26
+ protected get stateManager(): StateManagerHandler;
27
+ protected get pluginManager(): PluginManagerHandler;
28
+ protected get reactFlowManager(): ReactFlowManagerHandler;
29
+ }
30
+
31
+ /**
32
+ * Abstract base class for handler classes.
33
+ */
34
+ declare abstract class AbstractWorkerHandler {
35
+ protected context: WorkerHandlerContext;
36
+ constructor(context: WorkerHandlerContext);
37
+ abstract start(): void;
38
+ abstract stop(): void;
39
+ protected get communicationManager(): WorkerCommunicationManager;
40
+ protected get eventManager(): WorkerEventManager;
41
+ protected get hookManager(): WorkerHookManager;
42
+ protected get nodeManager(): WorkerNodeManager;
43
+ protected get syncManager(): WorkerSyncManager;
44
+ protected get connectionHealthManager(): WorkerConnectionHealthManager;
45
+ protected get edgeManager(): WorkerEdgeManager;
46
+ protected get groupManager(): WorkerGroupManager;
47
+ protected get libraryManager(): WorkerLibraryManager;
48
+ }
49
+
50
+ declare interface AllOf {
51
+ allOf: SerializedType[];
52
+ }
53
+
54
+ declare type AnyDataType = JSONType | ArrayBufferLike;
55
+
56
+ declare interface AnyOf {
57
+ anyOf: SerializedType[];
58
+ }
59
+
60
+ export declare class ArrayBufferDataStructure extends DataStructure<ArrayBuffer, string> {
61
+ private _objectUrl;
62
+ get objectUrl(): string;
63
+ dispose(): void;
64
+ get value(): string;
65
+ }
66
+
67
+ declare interface ArrayOf {
68
+ type: "array";
69
+ items: SerializedType;
70
+ uniqueItems: boolean;
71
+ }
72
+
73
+ declare interface AvailableModule {
74
+ name: string;
75
+ description: string;
76
+ homepage: string;
77
+ source: string;
78
+ version: string;
79
+ releases: string[];
80
+ }
81
+
82
+ declare interface BaseEdgeAction {
83
+ type: string;
84
+ src_nid: string;
85
+ src_ioid: string;
86
+ trg_nid: string;
87
+ trg_ioid: string;
88
+ from_remote: boolean;
89
+ }
90
+
91
+ declare interface BaseGroupAction {
92
+ type: string;
93
+ id: string;
94
+ group: Partial<NodeGroup>;
95
+ from_remote: boolean;
96
+ immediate?: boolean;
97
+ }
98
+
99
+ declare interface BaseNodeAction {
100
+ type: string;
101
+ from_remote: boolean;
102
+ id: string;
103
+ immediate?: boolean;
104
+ }
105
+
106
+ declare interface BaseRenderOptions {
107
+ type: RenderType;
108
+ }
109
+
110
+ declare type BasicDataOverlayRendererType = (props: DataOverlayRendererProps) => JSX.Element;
111
+
112
+ declare type BasicDataPreviewViewRendererType = (props: DataPreviewViewRendererProps) => JSX.Element;
113
+
114
+ declare type BasicDataViewRendererType = (props: DataViewRendererProps) => JSX.Element;
115
+
116
+ declare type BasicHandlePreviewRendererType = (props: HandlePreviewRendererProps) => JSX.Element;
117
+
118
+ declare type BasicInputRendererType = (props: InputRendererProps) => JSX.Element;
119
+
120
+ declare interface BasicIOType {
121
+ connected: boolean;
122
+ does_trigger: boolean;
123
+ full_id: string;
124
+ id: string;
125
+ is_input: boolean;
126
+ name: string;
127
+ node: string;
128
+ type: SerializedType;
129
+ render_options: IORenderOptions;
130
+ value_options?: IOValueOptions;
131
+ valuepreview_type?: string;
132
+ hidden: boolean;
133
+ emit_value_set: boolean;
134
+ default?: any;
135
+ required: boolean;
136
+ }
137
+
138
+ declare interface BasicNodeType {
139
+ id: string;
140
+ node_id: string;
141
+ node_name: string;
142
+ name: string;
143
+ error?: string;
144
+ render_options?: DeepPartial<NodeRenderOptions>;
145
+ description?: string;
146
+ properties: NodeProperties;
147
+ reset_inputs_on_trigger: boolean;
148
+ status?: {
149
+ [key: string]: any | undefined;
150
+ };
151
+ }
152
+
153
+ declare type BasicOutputRendererType = (props: OutputRendererProps) => JSX.Element;
154
+
155
+ export declare class CTypeStructure extends DataStructure<ArrayBufferLike, string | number | boolean | null> {
156
+ private _cType;
157
+ private _value;
158
+ constructor({ data, mime }: DataStructureProps<ArrayBufferLike>);
159
+ parse_value(): string | number | boolean | null;
160
+ get value(): string | number | boolean | null;
161
+ toString(): string;
162
+ }
163
+
164
+ export declare interface DataOverlayRendererProps {
165
+ value: any;
166
+ preValue?: any;
167
+ onLoaded?: () => void;
168
+ }
169
+
170
+ export declare type DataOverlayRendererType = BasicDataOverlayRendererType | React.MemoExoticComponent<BasicDataOverlayRendererType>;
171
+
172
+ export declare type DataPreviewViewRendererProps = {};
173
+
174
+ export declare const DataPreviewViewRendererToHandlePreviewRenderer: (DPR: DataPreviewViewRendererType) => HandlePreviewRendererType;
175
+
176
+ export declare type DataPreviewViewRendererType = BasicDataPreviewViewRendererType | React.MemoExoticComponent<BasicDataPreviewViewRendererType>;
177
+
178
+ declare interface DataRenderOptions extends BaseRenderOptions {
179
+ src?: string;
180
+ preview_type?: string;
181
+ }
182
+
183
+ /**
184
+ * Base class for wrapping data with MIME type information.
185
+ * Provides a consistent interface for accessing typed data with metadata.
186
+ *
187
+ * @template D - The type of the wrapped data, must extend AnyDataType
188
+ * @template R - The return type when accessing the value property, must extend JSONType or be undefined
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * const textData = new DataStructure({
193
+ * data: "Hello World",
194
+ * mime: "text/plain"
195
+ * });
196
+ * console.log(textData.data); // "Hello World"
197
+ * console.log(textData.mime); // "text/plain"
198
+ * ```
199
+ */
200
+ export declare class DataStructure<D extends AnyDataType, R extends JSONType | undefined> {
201
+ /** The wrapped data */
202
+ private _data;
203
+ /** MIME type describing the data format */
204
+ private _mime;
205
+ /**
206
+ * Creates a new DataStructure instance.
207
+ *
208
+ * @param props - Configuration object containing data and MIME type
209
+ */
210
+ constructor({ data, mime }: DataStructureProps<D>);
211
+ /**
212
+ * Gets the raw wrapped data.
213
+ *
214
+ * @returns The original data in its native type
215
+ */
216
+ get data(): D;
217
+ /**
218
+ * Gets the data cast to the expected return type.
219
+ * This is a type assertion and should be overridden in subclasses for proper type conversion.
220
+ *
221
+ * @returns The data cast to type R
222
+ */
223
+ get value(): R;
224
+ /**
225
+ * Gets the MIME type of the wrapped data.
226
+ *
227
+ * @returns The MIME type string
228
+ */
229
+ get mime(): string;
230
+ /**
231
+ * Returns a string representation of the DataStructure.
232
+ * The format varies based on the data type:
233
+ * - ArrayBuffer: shows byte length
234
+ * - Blob: shows size
235
+ * - String/Array: shows length
236
+ * - Object: shows number of keys
237
+ * - Other types: shows only MIME type
238
+ *
239
+ * @returns String representation in format "DataStructure(size,mime)" or "DataStructure(mime)"
240
+ */
241
+ toString(): string;
242
+ /**
243
+ * Returns the JSON representation of this DataStructure.
244
+ * Currently delegates to toString() method.
245
+ *
246
+ * @returns JSON string representation
247
+ */
248
+ toJSON(): string;
249
+ /**
250
+ * Cleans up resources associated with this DataStructure.
251
+ * Base implementation does nothing, but subclasses may override to release resources.
252
+ */
253
+ dispose(): void;
254
+ }
255
+
256
+ /**
257
+ * Properties for constructing a DataStructure instance.
258
+ *
259
+ * @template D - The type of data being wrapped, must extend AnyDataType
260
+ */
261
+ declare type DataStructureProps<D extends AnyDataType> = {
262
+ /** The actual data to be wrapped */
263
+ data: D;
264
+ /** MIME type string describing the data format */
265
+ mime: string;
266
+ };
267
+
268
+ export declare type DataViewRendererProps = {
269
+ value: JSONType | undefined;
270
+ preValue?: JSONType | undefined;
271
+ onLoaded?: () => void;
272
+ };
273
+
274
+ export declare const DataViewRendererToDataPreviewViewRenderer: (DV: DataViewRendererType, defaultValue?: any, props?: any) => DataPreviewViewRendererType;
275
+
276
+ export declare const DataViewRendererToInputRenderer: (DV: DataViewRendererType, defaultValue?: any) => InputRendererType;
277
+
278
+ export declare const DataViewRendererToOverlayRenderer: (DV: DataViewRendererType) => DataOverlayRendererType;
279
+
280
+ export declare type DataViewRendererType = BasicDataViewRendererType | React.MemoExoticComponent<BasicDataViewRendererType>;
281
+
282
+ /**
283
+ * A utility type that makes all properties of an object type T optional recursively.
284
+ *
285
+ * This type is similar to TypeScript's built-in `Partial<T>`, but it applies the optional
286
+ * modifier recursively to all nested objects and their properties. This is particularly
287
+ * useful when you want to create partial updates or configurations where any level of
288
+ * nesting can be optionally specified.
289
+ *
290
+ * @template T - The type to make deeply partial. Can be any type, but the transformation
291
+ * only applies meaningfully to object types.
292
+ *
293
+ * @example
294
+ * ```typescript
295
+ * interface Config {
296
+ * app: {
297
+ * name: string;
298
+ * version: string;
299
+ * features: {
300
+ * darkMode: boolean;
301
+ * notifications: boolean;
302
+ * };
303
+ * };
304
+ * user: {
305
+ * id: number;
306
+ * preferences: {
307
+ * language: string;
308
+ * theme: string;
309
+ * };
310
+ * };
311
+ * }
312
+ *
313
+ * // All properties at all levels become optional
314
+ * type PartialConfig = DeepPartial<Config>;
315
+ *
316
+ * // Valid partial configurations:
317
+ * const config1: PartialConfig = {}; // Empty object
318
+ * const config2: PartialConfig = { app: { name: "MyApp" } }; // Partial app config
319
+ * const config3: PartialConfig = {
320
+ * user: {
321
+ * preferences: { language: "en" }
322
+ * }
323
+ * }; // Deeply nested partial
324
+ * ```
325
+ *
326
+ * @example
327
+ * ```typescript
328
+ * // With primitive types, the type remains unchanged
329
+ * type PartialString = DeepPartial<string>; // string
330
+ * type PartialNumber = DeepPartial<number>; // number
331
+ * type PartialBoolean = DeepPartial<boolean>; // boolean
332
+ *
333
+ * // With arrays, the array itself becomes optional but elements keep their type
334
+ * type PartialArray = DeepPartial<string[]>; // string[] | undefined
335
+ * ```
336
+ *
337
+ * @note This type uses conditional types and mapped types to recursively apply the
338
+ * optional modifier. For non-object types (primitives, functions, etc.), the
339
+ * original type is returned unchanged.
340
+ *
341
+ * @note Arrays are treated as objects, so `DeepPartial<T[]>` results in `T[]?` rather
342
+ * than `(DeepPartial<T>)[]?`. If you need the array elements to also be deeply
343
+ * partial, consider using a more specialized type.
344
+ *
345
+ * @see LimitedDeepPartial - A depth-limited version of this type to prevent infinite recursion
346
+ * @see deep_merge - Function that works well with DeepPartial types for object merging
347
+ * @see deep_update - Function that accepts DeepPartial-like objects for updating
348
+ */
349
+ declare type DeepPartial<T> = T extends object ? {
350
+ [P in keyof T]?: DeepPartial<T[P]>;
351
+ } : T;
352
+
353
+ declare interface DevSettings {
354
+ debug: boolean;
355
+ }
356
+
357
+ declare interface DictOf {
358
+ type: "object";
359
+ keys: SerializedType;
360
+ values: SerializedType;
361
+ }
362
+
363
+ declare type EdgeAction = EdgeActionAdd | EdgeActionDelete;
364
+
365
+ declare interface EdgeActionAdd extends BaseEdgeAction {
366
+ type: "add";
367
+ }
368
+
369
+ declare interface EdgeActionDelete extends BaseEdgeAction {
370
+ type: "delete";
371
+ }
372
+
373
+ declare interface EnumOf {
374
+ type: "enum";
375
+ values: (number | string | boolean | null)[];
376
+ keys: string[];
377
+ nullable: boolean;
378
+ }
379
+
380
+ declare interface ErrorMessage {
381
+ type: "error";
382
+ error: string;
383
+ tb: string[];
384
+ id?: string;
385
+ }
386
+
387
+ declare interface ExternalWorkerClassDep {
388
+ module: string;
389
+ class_name: string;
390
+ name: string;
391
+ instances: ExternalWorkerInstance[];
392
+ }
393
+
394
+ declare interface ExternalWorkerDependencies {
395
+ module: string;
396
+ worker_classes: ExternalWorkerClassDep[];
397
+ }
398
+
399
+ declare interface ExternalWorkerInstance {
400
+ uuid: string;
401
+ nodeclassid: string;
402
+ running: boolean;
403
+ name: string;
404
+ }
405
+
406
+ declare class FuncNodesReactFlow implements FuncNodesReactFlowZustandInterface {
407
+ options: FuncnodesReactFlowProps;
408
+ reactflowRef: HTMLDivElement | null;
409
+ logger: Logger;
410
+ dev_settings: DevSettings;
411
+ private _nodespaceManager;
412
+ private _libManager;
413
+ private _workerManager;
414
+ private _stateManager;
415
+ private _pluginManager;
416
+ private _reactFlowManager;
417
+ constructor(props: FuncnodesReactFlowProps);
418
+ getNodespaceManager(): NodeSpaceManager;
419
+ getLibManager(): LibManager;
420
+ getWorkerManager(): WorkerManagerHandler;
421
+ getStateManager(): StateManagerHandler;
422
+ getPluginManager(): PluginManagerHandler;
423
+ getReactFlowManager(): ReactFlowManagerHandler;
424
+ get nodespace(): NodeSpaceZustandInterface;
425
+ get on_node_action(): (action: NodeAction) => NodeType | undefined;
426
+ get on_edge_action(): (action: EdgeAction) => void;
427
+ get on_group_action(): (action: GroupAction) => void;
428
+ get clear_all(): () => void;
429
+ get center_node(): (node_id: string | string[]) => void;
430
+ get center_all(): () => void;
431
+ get lib(): LibZustandInterface;
432
+ get set_worker(): (worker: FuncNodesWorker | undefined) => void;
433
+ get workermanager(): WorkerManagerHandler["workermanager"];
434
+ set workermanager(manager: WorkerManagerHandler["workermanager"]);
435
+ get worker(): FuncNodesWorker | undefined;
436
+ get workers(): UseBoundStore<StoreApi<WorkersState>>;
437
+ get workerstate(): UseBoundStore<StoreApi<FuncNodesWorkerState>>;
438
+ get _unsubscribeFromWorker(): (() => void) | undefined;
439
+ get set_progress(): (progress: ProgressState) => void;
440
+ get auto_progress(): () => void;
441
+ get progress_state(): UseBoundStore<StoreApi<ProgressState>>;
442
+ get local_settings(): UseBoundStore<StoreApi<FuncnodesReactFlowLocalSettings>>;
443
+ get local_state(): UseBoundStore<StoreApi<FuncnodesReactFlowLocalState>>;
444
+ update_view_settings(settings: FuncnodesReactFlowViewSettings): void;
445
+ get plugins(): UseBoundStore<StoreApi<{
446
+ [key: string]: FuncNodesReactPlugin | undefined;
447
+ }>>;
448
+ get add_plugin(): (name: string, plugin: VersionedFuncNodesReactPlugin) => void;
449
+ get add_packed_plugin(): (name: string, plugin: PackedPlugin) => Promise<void>;
450
+ get render_options(): UseBoundStore<StoreApi<RenderOptions>>;
451
+ get update_render_options(): (options: RenderOptions) => void;
452
+ get useReactFlowStore(): RFStore;
453
+ get rf_instance(): ReactFlowManagerHandler["rf_instance"];
454
+ set rf_instance(instance: ReactFlowManagerHandler["rf_instance"]);
455
+ }
456
+
457
+ /**
458
+ * Defines the required context for handler classes, providing access
459
+ * to the parent worker instance.
460
+ */
461
+ declare interface FuncNodesReactFlowHandlerContext {
462
+ rf: FuncNodesReactFlow;
463
+ }
464
+
465
+ declare interface FuncnodesReactFlowLocalSettings {
466
+ view_settings: FuncnodesReactFlowViewSettings;
467
+ }
468
+
469
+ declare interface FuncnodesReactFlowLocalState {
470
+ selected_nodes: string[];
471
+ selected_edges: string[];
472
+ selected_groups: string[];
473
+ funcnodescontainerRef: HTMLDivElement | null;
474
+ }
475
+
476
+ declare interface FuncnodesReactFlowProps {
477
+ id: string;
478
+ debug: boolean;
479
+ on_sync_complete?: (worker: FuncNodesWorker) => Promise<void>;
480
+ useWorkerManager: boolean;
481
+ show_library: boolean;
482
+ load_worker?: string;
483
+ worker?: FuncNodesWorker;
484
+ header: FuncnodesReactHeaderProps;
485
+ flow: ReactFlowLayerProps;
486
+ library: ReactFlowLibraryProps;
487
+ worker_url?: string;
488
+ fnw_url?: string;
489
+ workermanager_url?: string;
490
+ logger?: Logger;
491
+ on_ready?: ({ fnrf_zst }: {
492
+ fnrf_zst: FuncNodesReactFlow;
493
+ }) => void;
494
+ }
495
+
496
+ declare interface FuncnodesReactFlowViewSettings {
497
+ expand_node_props?: boolean;
498
+ expand_lib?: boolean;
499
+ }
500
+
501
+ declare interface FuncNodesReactFlowZustandInterface {
502
+ options: FuncnodesReactFlowProps;
503
+ local_settings: UseBoundStore<StoreApi<FuncnodesReactFlowLocalSettings>>;
504
+ update_view_settings: (settings: FuncnodesReactFlowViewSettings) => void;
505
+ local_state: UseBoundStore<StoreApi<FuncnodesReactFlowLocalState>>;
506
+ lib: LibZustandInterface;
507
+ workermanager: WorkerManager | undefined;
508
+ workers: UseBoundStore<StoreApi<WorkersState>>;
509
+ workerstate: UseBoundStore<StoreApi<FuncNodesWorkerState>>;
510
+ worker: FuncNodesWorker | undefined;
511
+ set_worker: (worker: FuncNodesWorker | undefined) => void;
512
+ _unsubscribeFromWorker: (() => void) | undefined;
513
+ nodespace: NodeSpaceZustandInterface;
514
+ useReactFlowStore: RFStore;
515
+ render_options: UseBoundStore<StoreApi<RenderOptions>>;
516
+ progress_state: UseBoundStore<StoreApi<ProgressState>>;
517
+ update_render_options: (options: RenderOptions) => void;
518
+ rf_instance?: ReturnType<typeof useReactFlow>;
519
+ on_node_action: (action: NodeAction) => NodeType | undefined;
520
+ on_edge_action: (edge: EdgeAction) => void;
521
+ on_group_action: (group: GroupAction) => void;
522
+ set_progress: (progress: ProgressState) => void;
523
+ auto_progress: () => void;
524
+ plugins: UseBoundStore<StoreApi<{
525
+ [key: string]: FuncNodesReactPlugin | undefined;
526
+ }>>;
527
+ add_plugin: (name: string, plugin: FuncNodesReactPlugin) => void;
528
+ reactflowRef: HTMLDivElement | null;
529
+ clear_all: () => void;
530
+ center_node: (node_id: string | string[]) => void;
531
+ center_all: () => void;
532
+ dev_settings: DevSettings;
533
+ logger: Logger;
534
+ }
535
+
536
+ declare interface FuncnodesReactHeaderProps {
537
+ show: boolean;
538
+ showmenu: boolean;
539
+ }
540
+
541
+ export declare type FuncNodesReactPlugin = VersionedFuncNodesReactPlugin<typeof LATEST_VERSION>;
542
+
543
+ export declare const FuncNodesRenderer: (id_or_element: string | HTMLElement, options?: Partial<FuncnodesReactFlowProps>) => void;
544
+
545
+ declare class FuncNodesWorker {
546
+ _zustand?: FuncNodesReactFlow;
547
+ uuid: string;
548
+ private _connectionhealthManager;
549
+ private _communicationManager;
550
+ private _eventManager;
551
+ private _syncManager;
552
+ private _hookManager;
553
+ private _nodeManager;
554
+ private _edgeManager;
555
+ private _groupManager;
556
+ private _libraryManager;
557
+ getEventManager(): WorkerEventManager;
558
+ getSyncManager(): WorkerSyncManager;
559
+ getCommunicationManager(): WorkerCommunicationManager;
560
+ getConnectionHealthManager(): WorkerConnectionHealthManager;
561
+ getHookManager(): WorkerHookManager;
562
+ getNodeManager(): WorkerNodeManager;
563
+ getEdgeManager(): WorkerEdgeManager;
564
+ getGroupManager(): WorkerGroupManager;
565
+ getLibraryManager(): WorkerLibraryManager;
566
+ state: UseBoundStore<StoreApi<FuncNodesWorkerState>>;
567
+ readonly api: WorkerAPI;
568
+ on_error: (error: any) => void;
569
+ constructor(data: WorkerProps);
570
+ set_zustand(zustand: FuncNodesReactFlow): void;
571
+ get is_open(): boolean;
572
+ set is_open(v: boolean);
573
+ get is_responsive(): boolean;
574
+ clear(): Promise<any>;
575
+ save(): Promise<any>;
576
+ load(data: any): Promise<void>;
577
+ get_runstate(): Promise<any>;
578
+ send(_data: any): Promise<void>;
579
+ upload_file(_params: {
580
+ files: File[] | FileList;
581
+ onProgressCallback?: (loaded: number, total?: number) => void;
582
+ root?: string;
583
+ }): Promise<string>;
584
+ handle_large_message_hint({}: LargeMessageHint): Promise<void>;
585
+ disconnect(): void;
586
+ onclose(): void;
587
+ reconnect(): Promise<void>;
588
+ stop(): Promise<void>;
589
+ update_external_worker(worker_id: string, class_id: string, data: {
590
+ name?: string;
591
+ }): Promise<any>;
592
+ export({ withFiles }: {
593
+ withFiles: boolean;
594
+ }): Promise<any>;
595
+ update_from_export(data: string): Promise<any>;
596
+ /**
597
+ * @deprecated This method is deprecated. Use the API or getCommunicationManager()._send_cmd directly instead.
598
+ */
599
+ _send_cmd(params: Parameters<WorkerCommunicationManager["_send_cmd"]>[0]): Promise<any>;
600
+ /**
601
+ * @deprecated This method is deprecated. Use the API or getNodeManager().set_io_value directly instead.
602
+ */
603
+ set_io_value(params: Parameters<WorkerNodeManagerAPI["set_io_value"]>[0]): Promise<any>;
604
+ /**
605
+ * @deprecated This method is deprecated. Use the API or getNodeManager().get_io_value directly instead.
606
+ */
607
+ get_io_value(params: Parameters<WorkerNodeManagerAPI["get_io_value"]>[0]): Promise<any>;
608
+ }
609
+
610
+ declare interface FuncNodesWorkerState {
611
+ is_open: boolean;
612
+ }
613
+
614
+ declare type GroupAction = GroupActionSet | GroupActionUpdate;
615
+
616
+ declare interface GroupActionSet {
617
+ type: "set";
618
+ groups: NodeGroups;
619
+ }
620
+
621
+ declare interface GroupActionUpdate extends BaseGroupAction {
622
+ type: "update";
623
+ }
624
+
625
+ declare interface GroupedAvailableModules {
626
+ installed: AvailableModule[];
627
+ available: AvailableModule[];
628
+ active: AvailableModule[];
629
+ }
630
+
631
+ export declare type HandlePreviewRendererProps = {};
632
+
633
+ export declare type HandlePreviewRendererType = BasicHandlePreviewRendererType | React.MemoExoticComponent<BasicHandlePreviewRendererType>;
634
+
635
+ export declare interface InLineRendererProps {
636
+ }
637
+
638
+ export declare type InLineRendererType = ({}: InLineRendererProps) => string;
639
+
640
+ export declare type InputRendererProps = {
641
+ inputconverter: [(v: any) => any, (v: any) => any];
642
+ };
643
+
644
+ export declare type InputRendererType = BasicInputRendererType | React.MemoExoticComponent<BasicInputRendererType>;
645
+
646
+ declare type IOGetFullValue = () => Promise<any> | undefined;
647
+
648
+ declare interface IORenderOptions extends BaseRenderOptions {
649
+ set_default: boolean;
650
+ }
651
+
652
+ declare interface IOStore {
653
+ io_state: UseJSONStore<IOType>;
654
+ use(): IOType;
655
+ use<U>(selector: (state: IOType) => U): U;
656
+ useShallow<U>(selector: (state: IOType) => U): U;
657
+ getState: () => IOType;
658
+ setState: (new_state: Partial<IOType>) => void;
659
+ update: (new_state: PartialSerializedIOType) => void;
660
+ valuestore: UseBoundStore<StoreApi<ValueStoreInterface>>;
661
+ node: string;
662
+ updateValueStore: (newData: Partial<ValueStoreInterface>) => void;
663
+ serialize: () => SerializedIOType;
664
+ }
665
+
666
+ declare interface IOType extends BasicIOType {
667
+ [key: string]: any | undefined;
668
+ }
669
+
670
+ declare interface IOValueOptions {
671
+ min?: number;
672
+ max?: number;
673
+ step?: number;
674
+ options?: (string | number)[] | EnumOf;
675
+ colorspace?: string;
676
+ }
677
+
678
+ declare type IOValueOptionsSetter = (data: {
679
+ values?: any[];
680
+ keys: string[];
681
+ nullable?: boolean;
682
+ }) => void;
683
+
684
+ declare type IOValueType = string | number | boolean | undefined | DataStructure<any, any>;
685
+
686
+ declare type JSONMessage = ProgressStateMessage | ResultMessage | ErrorMessage | NodeSpaceEvent | WorkerEvent | LargeMessageHint | PongMessage;
687
+
688
+ /**
689
+ * Union type representing all supported data types for DataStructure instances.
690
+ * Includes primitive types and ArrayBufferLike for binary data.
691
+ */
692
+ declare interface JSONObject {
693
+ [key: string]: JSONType;
694
+ }
695
+
696
+ export declare class JSONStructure extends DataStructure<ArrayBufferLike, JSONType | undefined> {
697
+ private _json;
698
+ constructor({ data, mime }: DataStructureProps<any>);
699
+ get value(): JSONType | undefined;
700
+ static fromObject(obj: JSONType): JSONStructure;
701
+ toString(): string;
702
+ }
703
+
704
+ declare type JSONType = string | number | boolean | null | JSONObject | JSONType[];
705
+
706
+ declare interface LargeMessageHint {
707
+ type: "large_message";
708
+ msg_id: string;
709
+ }
710
+
711
+ export declare const LATEST_VERSION = "1.0.0";
712
+
713
+ declare class LibManager extends AbstractFuncNodesReactFlowHandleHandler implements LibManagerManagerAPI {
714
+ lib: LibZustandInterface;
715
+ constructor(context: FuncNodesReactFlowHandlerContext);
716
+ }
717
+
718
+ declare interface LibManagerManagerAPI {
719
+ }
720
+
721
+ declare interface LibNode {
722
+ node_id: string;
723
+ description?: string;
724
+ node_name?: string;
725
+ }
726
+
727
+ declare interface LibState {
728
+ lib: LibType;
729
+ external_worker?: ExternalWorkerDependencies[];
730
+ set: (state: {
731
+ lib?: LibType;
732
+ external_worker?: ExternalWorkerDependencies[];
733
+ }) => void;
734
+ get_lib: () => LibType;
735
+ get_external_worker: () => ExternalWorkerDependencies[] | undefined;
736
+ }
737
+
738
+ declare interface LibType {
739
+ shelves: Shelf[];
740
+ }
741
+
742
+ declare interface LibZustandInterface {
743
+ libstate: UseBoundStore<StoreApi<LibState>>;
744
+ }
745
+
746
+ /**
747
+ * A depth-limited version of DeepPartial that prevents infinite recursion by limiting
748
+ * the depth of the optional property transformation.
749
+ *
750
+ * This type is similar to `DeepPartial<T>` but includes a recursion depth limit to prevent
751
+ * TypeScript from hitting infinite recursion errors when dealing with circular type references
752
+ * or very deeply nested object structures. Once the depth limit is reached, the original
753
+ * type T is returned without further transformation.
754
+ *
755
+ * @template T - The type to make deeply partial with depth limitation
756
+ * @template D - The maximum recursion depth (defaults to 10). Must be a number literal type
757
+ * from the Prev array. When D reaches 0, recursion stops and T is returned as-is.
758
+ *
759
+ * @example
760
+ * ```typescript
761
+ * interface DeepConfig {
762
+ * level1: {
763
+ * level2: {
764
+ * level3: {
765
+ * value: string;
766
+ * nested: DeepConfig; // Circular reference
767
+ * };
768
+ * };
769
+ * };
770
+ * }
771
+ *
772
+ * // Safe to use with circular references due to depth limit
773
+ * type PartialConfig = LimitedDeepPartial<DeepConfig, 5>;
774
+ *
775
+ * // Usage examples
776
+ * const config1: PartialConfig = {}; // Valid
777
+ * const config2: PartialConfig = {
778
+ * level1: {
779
+ * level2: {
780
+ * level3: { value: "test" }
781
+ * }
782
+ * }
783
+ * }; // Valid - within depth limit
784
+ * ```
785
+ *
786
+ * @example
787
+ * ```typescript
788
+ * // Controlling recursion depth
789
+ * type ShallowPartial = LimitedDeepPartial<MyType, 2>; // Only 2 levels deep
790
+ * type DeepPartial = LimitedDeepPartial<MyType, 15>; // 15 levels deep
791
+ * type DefaultPartial = LimitedDeepPartial<MyType>; // 10 levels deep (default)
792
+ * ```
793
+ *
794
+ * @note The depth parameter D must be a literal number type that exists in the Prev array.
795
+ * The Prev array defines the available depth values (0-99 in this implementation).
796
+ *
797
+ * @note When the depth limit is reached (D extends 0), the type transformation stops
798
+ * and the original type T is returned. This means properties at that depth and
799
+ * beyond will retain their original required/optional status.
800
+ *
801
+ * @note This type is particularly useful when working with recursive data structures,
802
+ * tree-like objects, or any scenario where DeepPartial might cause TypeScript
803
+ * compilation issues due to infinite recursion.
804
+ *
805
+ * @see DeepPartial - The unlimited depth version of this type
806
+ * @see Prev - The helper type array that defines available depth values
807
+ * @see deep_update - Function that works with LimitedDeepPartial types
808
+ */
809
+ declare type LimitedDeepPartial<T, D extends number = 10> = D extends 0 ? T : T extends object ? {
810
+ [K in keyof T]?: LimitedDeepPartial<T[K], Prev[D]>;
811
+ } : T;
812
+
813
+ /**
814
+ * Logger interface and utilities for structured logging across the application.
815
+ *
816
+ * This module provides a flexible logging system with multiple output targets
817
+ * and configurable log levels. The logging interface supports lazy formatting
818
+ * through keyword arguments and circular reference handling.
819
+ *
820
+ * @module Logger
821
+ */
822
+ /**
823
+ * Logger interface defining the contract for all logger implementations.
824
+ *
825
+ * The log functions take a string message and arbitrary number of keyword arguments
826
+ * that are used for lazy formatting when the log level permits output.
827
+ *
828
+ * @interface Logger
829
+ * @example
830
+ * ```typescript
831
+ * const logger: Logger = new ConsoleLogger("MyApp", INFO);
832
+ * logger.info("User logged in", { userId: 123, timestamp: Date.now() });
833
+ * logger.error("Database connection failed", error);
834
+ * ```
835
+ */
836
+ declare interface Logger {
837
+ /**
838
+ * Current logging level. Messages below this level will be filtered out.
839
+ * @type {number}
840
+ */
841
+ level: number;
842
+ /**
843
+ * Set the logging level for this logger instance.
844
+ *
845
+ * @param {number | string} level - The minimum log level to output (DEBUG=0, INFO=10, WARN=20, ERROR=30) or string level name
846
+ * @example
847
+ * ```typescript
848
+ * logger.set_level(DEBUG); // Show all messages
849
+ * logger.set_level("ERROR"); // Show only error messages
850
+ * logger.set_level("debug"); // Case-insensitive string levels
851
+ * ```
852
+ */
853
+ set_level: (level: number | string) => void;
854
+ /**
855
+ * Log a debug message. Only outputs if current level <= DEBUG.
856
+ *
857
+ * @param {string} message - The primary log message
858
+ * @param {...any[]} args - Additional arguments for context (will be JSON serialized)
859
+ * @example
860
+ * ```typescript
861
+ * logger.debug("Processing item", { itemId: 42, step: "validation" });
862
+ * ```
863
+ */
864
+ debug: (message: string, ...args: any[]) => void;
865
+ /**
866
+ * Log an informational message. Only outputs if current level <= INFO.
867
+ *
868
+ * @param {string} message - The primary log message
869
+ * @param {...any[]} args - Additional arguments for context (will be JSON serialized)
870
+ * @example
871
+ * ```typescript
872
+ * logger.info("User action completed", { action: "save", duration: "120ms" });
873
+ * ```
874
+ */
875
+ info: (message: string, ...args: any[]) => void;
876
+ /**
877
+ * Log a warning message. Only outputs if current level <= WARN.
878
+ *
879
+ * @param {string} message - The primary log message
880
+ * @param {...any[]} args - Additional arguments for context (will be JSON serialized)
881
+ * @example
882
+ * ```typescript
883
+ * logger.warn("Deprecated API usage", { api: "/old-endpoint", replacement: "/v2/endpoint" });
884
+ * ```
885
+ */
886
+ warn: (message: string, ...args: any[]) => void;
887
+ /**
888
+ * Log an error message. Only outputs if current level <= ERROR.
889
+ *
890
+ * @param {string} message - The primary log message
891
+ * @param {Error} [error] - Optional Error object for stack trace handling
892
+ * @example
893
+ * ```typescript
894
+ * logger.error("Operation failed", error);
895
+ * ```
896
+ */
897
+ error: (message: string, error?: Error) => void;
898
+ }
899
+
900
+ declare type NodeAction = NodeActionAdd | NodeActionUpdate | NodeActionDelete | NodeActionError | NodeActionTrigger;
901
+
902
+ declare interface NodeActionAdd extends BaseNodeAction {
903
+ type: "add";
904
+ node: SerializedNodeType;
905
+ }
906
+
907
+ declare interface NodeActionDelete extends BaseNodeAction {
908
+ type: "delete";
909
+ }
910
+
911
+ declare interface NodeActionError extends BaseNodeAction {
912
+ type: "error";
913
+ errortype: string;
914
+ error: string;
915
+ tb?: string;
916
+ }
917
+
918
+ declare interface NodeActionTrigger extends BaseNodeAction {
919
+ type: "trigger";
920
+ }
921
+
922
+ declare interface NodeActionUpdate extends BaseNodeAction {
923
+ type: "update";
924
+ node: PartialSerializedNodeType;
925
+ }
926
+
927
+ declare interface NodeGroup {
928
+ node_ids: string[];
929
+ child_groups: string[];
930
+ parent_group: string | null;
931
+ meta: Record<string, any>;
932
+ position: [number, number];
933
+ }
934
+
935
+ declare interface NodeGroups {
936
+ [key: string]: NodeGroup;
937
+ }
938
+
939
+ export declare type NodeHooksProps = {};
940
+
941
+ export declare type NodeHooksType = (hookprops: NodeHooksProps) => JSX.Element;
942
+
943
+ declare interface NodeProperties {
944
+ "frontend:size": [number, number];
945
+ "frontend:pos": [number, number];
946
+ "frontend:collapsed": boolean;
947
+ [key: string]: any | undefined;
948
+ }
949
+
950
+ export declare interface NodeRendererProps {
951
+ }
952
+
953
+ export declare type NodeRendererType = (renderprops: NodeRendererProps) => JSX.Element;
954
+
955
+ declare interface NodeRenderOptions {
956
+ data?: DataRenderOptions;
957
+ }
958
+
959
+ declare interface NodeSpaceEvent {
960
+ type: "nsevent";
961
+ event: string;
962
+ data: {
963
+ [key: string]: any | undefined;
964
+ };
965
+ }
966
+
967
+ declare class NodeSpaceManager extends AbstractFuncNodesReactFlowHandleHandler implements NodeSpaceManagerAPI {
968
+ nodespace: NodeSpaceZustandInterface;
969
+ constructor(context: FuncNodesReactFlowHandlerContext);
970
+ on_node_action: (action: NodeAction) => NodeType | undefined;
971
+ on_edge_action: (action: EdgeAction) => void;
972
+ on_group_action: (action: GroupAction) => void;
973
+ clear_all: () => void;
974
+ center_node: (node_id: string | string[]) => void;
975
+ center_all(): void;
976
+ auto_resize_group: (gid: string) => void;
977
+ change_group_position: (change: NodePositionChange) => void;
978
+ change_fn_node_position: (change: NodePositionChange) => void;
979
+ change_group_dimensions: (change: NodeDimensionChange) => void;
980
+ change_fn_node_dimensions: (change: NodeDimensionChange) => void;
981
+ _update_group: (action: GroupActionUpdate) => void;
982
+ _set_groups: (groups: NodeGroups) => void;
983
+ _add_node: (action: NodeActionAdd) => NodeType | undefined;
984
+ _update_node: (action: NodeActionUpdate) => NodeType | undefined;
985
+ _delete_node: (action: NodeActionDelete) => undefined;
986
+ _error_action: (action: NodeActionError) => NodeType | undefined;
987
+ _trigger_action: (action: NodeActionTrigger) => NodeType | undefined;
988
+ }
989
+
990
+ declare interface NodeSpaceManagerAPI {
991
+ on_node_action: (action: NodeAction) => NodeType | undefined;
992
+ on_edge_action: (edge: EdgeAction) => void;
993
+ on_group_action: (group: GroupAction) => void;
994
+ clear_all: () => void;
995
+ center_node: (node_id: string | string[]) => void;
996
+ center_all: () => void;
997
+ }
998
+
999
+ declare interface NodeSpaceZustandInterface {
1000
+ nodesstates: Map<string, NodeStore>;
1001
+ get_node: (nid: string, raise?: boolean) => NodeStore | undefined;
1002
+ }
1003
+
1004
+ declare interface NodeStore {
1005
+ node_state: UseJSONStore<NodeType>;
1006
+ io_stores: Map<string, IOStore>;
1007
+ use(): NodeType;
1008
+ use<U>(selector: (state: NodeType) => U): U;
1009
+ useShallow<U>(selector: (state: NodeType) => U): U;
1010
+ getState: () => NodeType;
1011
+ setState: (new_state: Partial<NodeType>) => void;
1012
+ update: (new_state: PartialSerializedNodeType) => void;
1013
+ serialize: () => SerializedNodeType;
1014
+ }
1015
+
1016
+ declare interface NodeType extends Omit<BasicNodeType, "in_trigger" | "io"> {
1017
+ in_trigger: boolean;
1018
+ inputs: string[];
1019
+ outputs: string[];
1020
+ io_order: string[];
1021
+ progress: DeepPartial<TqdmState>;
1022
+ [key: string]: any;
1023
+ }
1024
+
1025
+ export declare type OutputRendererProps = {};
1026
+
1027
+ export declare type OutputRendererType = BasicOutputRendererType | React.MemoExoticComponent<BasicOutputRendererType>;
1028
+
1029
+ declare interface PackedPlugin {
1030
+ module: string;
1031
+ js?: string[];
1032
+ css?: string[];
1033
+ }
1034
+
1035
+ declare type PartialSerializedIOType = LimitedDeepPartial<SerializedIOType>;
1036
+
1037
+ declare type PartialSerializedNodeType = LimitedDeepPartial<SerializedNodeType>;
1038
+
1039
+ declare class PluginManagerHandler extends AbstractFuncNodesReactFlowHandleHandler implements PluginManagerManagerAPI {
1040
+ plugins: UseBoundStore<StoreApi<{
1041
+ [key: string]: FuncNodesReactPlugin | undefined;
1042
+ }>>;
1043
+ render_options: UseBoundStore<StoreApi<RenderOptions>>;
1044
+ constructor(context: FuncNodesReactFlowHandlerContext);
1045
+ add_plugin(name: string, plugin: VersionedFuncNodesReactPlugin): void;
1046
+ update_render_options(options: RenderOptions): void;
1047
+ add_packed_plugin(name: string, plugin: PackedPlugin): Promise<void>;
1048
+ }
1049
+
1050
+ declare interface PluginManagerManagerAPI {
1051
+ plugins: UseBoundStore<StoreApi<{
1052
+ [key: string]: FuncNodesReactPlugin | undefined;
1053
+ }>>;
1054
+ add_plugin: (name: string, plugin: FuncNodesReactPlugin) => void;
1055
+ add_packed_plugin: (name: string, plugin: PackedPlugin) => void;
1056
+ render_options: UseBoundStore<StoreApi<RenderOptions>>;
1057
+ update_render_options: (options: RenderOptions) => void;
1058
+ }
1059
+
1060
+ declare interface PongMessage {
1061
+ type: "pong";
1062
+ }
1063
+
1064
+ /**
1065
+ * A helper type array used to track and control recursion depth in type operations.
1066
+ *
1067
+ * This type provides a lookup table for decremental recursion depth values, where each
1068
+ * index maps to the previous number in the sequence. This is used by LimitedDeepPartial
1069
+ * and other recursive type operations to prevent infinite recursion by counting down
1070
+ * from a maximum depth to zero.
1071
+ *
1072
+ * @example
1073
+ * ```typescript
1074
+ * // Usage in recursive type (internal to LimitedDeepPartial)
1075
+ * type DecrementDepth<D extends number> = Prev[D]; // Prev[5] = 4, Prev[4] = 3, etc.
1076
+ * ```
1077
+ *
1078
+ * @note The array contains values from 'never' at index 0 to 99 at index 100.
1079
+ * Index 0 maps to 'never' which effectively terminates recursion.
1080
+ * Indexes 1-100 map to their predecessor (1→0, 2→1, 3→2, etc.).
1081
+ *
1082
+ * @see LimitedDeepPartial - Primary consumer of this type for depth-limited recursion
1083
+ */
1084
+ declare type Prev = [
1085
+ never,
1086
+ 0,
1087
+ 1,
1088
+ 2,
1089
+ 3,
1090
+ 4,
1091
+ 5,
1092
+ 6,
1093
+ 7,
1094
+ 8,
1095
+ 9,
1096
+ 10,
1097
+ 11,
1098
+ 12,
1099
+ 13,
1100
+ 14,
1101
+ 15,
1102
+ 16,
1103
+ 17,
1104
+ 18,
1105
+ 19,
1106
+ 20,
1107
+ 21,
1108
+ 22,
1109
+ 23,
1110
+ 24,
1111
+ 25,
1112
+ 26,
1113
+ 27,
1114
+ 28,
1115
+ 29,
1116
+ 30,
1117
+ 31,
1118
+ 32,
1119
+ 33,
1120
+ 34,
1121
+ 35,
1122
+ 36,
1123
+ 37,
1124
+ 38,
1125
+ 39,
1126
+ 40,
1127
+ 41,
1128
+ 42,
1129
+ 43,
1130
+ 44,
1131
+ 45,
1132
+ 46,
1133
+ 47,
1134
+ 48,
1135
+ 49,
1136
+ 50,
1137
+ 51,
1138
+ 52,
1139
+ 53,
1140
+ 54,
1141
+ 55,
1142
+ 56,
1143
+ 57,
1144
+ 58,
1145
+ 59,
1146
+ 60,
1147
+ 61,
1148
+ 62,
1149
+ 63,
1150
+ 64,
1151
+ 65,
1152
+ 66,
1153
+ 67,
1154
+ 68,
1155
+ 69,
1156
+ 70,
1157
+ 71,
1158
+ 72,
1159
+ 73,
1160
+ 74,
1161
+ 75,
1162
+ 76,
1163
+ 77,
1164
+ 78,
1165
+ 79,
1166
+ 80,
1167
+ 81,
1168
+ 82,
1169
+ 83,
1170
+ 84,
1171
+ 85,
1172
+ 86,
1173
+ 87,
1174
+ 88,
1175
+ 89,
1176
+ 90,
1177
+ 91,
1178
+ 92,
1179
+ 93,
1180
+ 94,
1181
+ 95,
1182
+ 96,
1183
+ 97,
1184
+ 98,
1185
+ 99
1186
+ ];
1187
+
1188
+ declare interface ProgressState {
1189
+ message: string;
1190
+ status: string;
1191
+ progress: number;
1192
+ blocking: boolean;
1193
+ }
1194
+
1195
+ declare interface ProgressStateMessage extends ProgressState {
1196
+ type: "progress";
1197
+ }
1198
+
1199
+ declare interface ReactFlowLayerProps {
1200
+ minimap: boolean;
1201
+ static: boolean;
1202
+ minZoom: number;
1203
+ maxZoom: number;
1204
+ allowFullScreen: boolean;
1205
+ allowExpand: boolean;
1206
+ showNodeSettings: boolean;
1207
+ }
1208
+
1209
+ declare interface ReactFlowLibraryProps {
1210
+ show: boolean;
1211
+ }
1212
+
1213
+ declare class ReactFlowManagerHandler extends AbstractFuncNodesReactFlowHandleHandler implements ReactFlowManagerManagerAPI {
1214
+ useReactFlowStore: RFStore;
1215
+ rf_instance?: ReactFlowInstance<Node_2, Edge> | undefined;
1216
+ constructor(context: FuncNodesReactFlowHandlerContext);
1217
+ on_rf_node_change: (nodechange: NodeChange[]) => void;
1218
+ on_rf_edge_change: (_edgechange: EdgeChange[]) => void;
1219
+ on_connect: (connection: Connection) => void;
1220
+ }
1221
+
1222
+ declare interface ReactFlowManagerManagerAPI {
1223
+ useReactFlowStore: RFStore;
1224
+ rf_instance?: ReactFlowInstance<Node_2, Edge> | undefined;
1225
+ }
1226
+
1227
+ export declare interface RendererPlugin {
1228
+ input_renderers?: {
1229
+ [key: string]: InputRendererType | undefined;
1230
+ };
1231
+ output_renderers?: {
1232
+ [key: string]: OutputRendererType | undefined;
1233
+ };
1234
+ handle_preview_renderers?: {
1235
+ [key: string]: HandlePreviewRendererType | undefined;
1236
+ };
1237
+ data_overlay_renderers?: {
1238
+ [key: string]: DataOverlayRendererType | undefined;
1239
+ };
1240
+ data_preview_renderers?: {
1241
+ [key: string]: DataPreviewViewRendererType | undefined;
1242
+ };
1243
+ data_view_renderers?: {
1244
+ [key: string]: DataViewRendererType | undefined;
1245
+ };
1246
+ node_renderers?: {
1247
+ [key: string]: NodeRendererType | undefined;
1248
+ };
1249
+ node_hooks?: {
1250
+ [key: string]: NodeHooksType[] | undefined;
1251
+ };
1252
+ }
1253
+
1254
+ declare interface RenderOptions {
1255
+ typemap?: {
1256
+ [key: string]: string | undefined;
1257
+ };
1258
+ inputconverter?: {
1259
+ [key: string]: string | undefined;
1260
+ };
1261
+ }
1262
+
1263
+ export declare type RenderPluginFactoryProps = {};
1264
+
1265
+ declare type RenderType = "string" | "number" | "boolean" | "image" | "any" | SerializedType;
1266
+
1267
+ declare interface ResultMessage {
1268
+ type: "result";
1269
+ id?: string;
1270
+ result: any;
1271
+ }
1272
+
1273
+ declare type RFState = {
1274
+ _nodes: Node_2[];
1275
+ _edges: Edge[];
1276
+ _nodes_map: Map<string, Node_2>;
1277
+ update_nodes: (nodes: Node_2[]) => void;
1278
+ partial_update_nodes: (nodes: Node_2[]) => void;
1279
+ update_edges: (edges: Edge[]) => void;
1280
+ onNodesChange: OnNodesChange;
1281
+ onEdgesChange: OnEdgesChange;
1282
+ onConnect: OnConnect;
1283
+ getNode: (id: string) => Node_2 | undefined;
1284
+ getNodes: () => Node_2[];
1285
+ getEdges: () => Edge[];
1286
+ };
1287
+
1288
+ declare type RFStore = UseBoundStore<StoreApi<RFState>>;
1289
+
1290
+ declare interface SerializedIOType extends BasicIOType {
1291
+ value: IOValueType;
1292
+ fullvalue: IOValueType;
1293
+ }
1294
+
1295
+ declare type SerializedNodeIOMappingType = {
1296
+ [key: string]: SerializedIOType | undefined;
1297
+ };
1298
+
1299
+ declare interface SerializedNodeType extends BasicNodeType {
1300
+ in_trigger: boolean;
1301
+ io: SerializedNodeIOMappingType | SerializedIOType[];
1302
+ io_order?: string[];
1303
+ progress: DeepPartial<TqdmState>;
1304
+ }
1305
+
1306
+ declare type SerializedType = string | AllOf | AnyOf | ArrayOf | DictOf | EnumOf | TypeOf;
1307
+
1308
+ declare interface Shelf {
1309
+ name: string;
1310
+ description?: string;
1311
+ nodes: LibNode[];
1312
+ subshelves: Shelf[];
1313
+ }
1314
+
1315
+ declare class StateManagerHandler extends AbstractFuncNodesReactFlowHandleHandler implements StateManagerManagerAPI {
1316
+ progress_state: UseBoundStore<StoreApi<ProgressState>>;
1317
+ local_settings: UseBoundStore<StoreApi<FuncnodesReactFlowLocalSettings>>;
1318
+ local_state: UseBoundStore<StoreApi<FuncnodesReactFlowLocalState>>;
1319
+ toaster?: ToastDispatcher;
1320
+ constructor(context: FuncNodesReactFlowHandlerContext);
1321
+ set_progress(progress: ProgressState): void;
1322
+ auto_progress(): void;
1323
+ update_view_settings(settings: FuncnodesReactFlowViewSettings): void;
1324
+ }
1325
+
1326
+ declare interface StateManagerManagerAPI {
1327
+ set_progress: (progress: ProgressState) => void;
1328
+ auto_progress: () => void;
1329
+ toast?: ToastDispatcher;
1330
+ }
1331
+
1332
+ export declare class TextStructure extends DataStructure<ArrayBufferLike, string> {
1333
+ private _value;
1334
+ constructor({ data, mime }: DataStructureProps<ArrayBufferLike>);
1335
+ get value(): string;
1336
+ toString(): string;
1337
+ }
1338
+
1339
+ declare type ToastDispatcher = {
1340
+ (payload: ToastPayload): void;
1341
+ success: (payload: ToastPayload) => void;
1342
+ error: (payload: ToastPayload) => void;
1343
+ };
1344
+
1345
+ declare interface ToastPayload {
1346
+ title?: string;
1347
+ description: string;
1348
+ status?: ToastStatus;
1349
+ type?: ToastType;
1350
+ duration?: number;
1351
+ action?: {
1352
+ label: string;
1353
+ altText: string;
1354
+ onClick: () => void;
1355
+ };
1356
+ }
1357
+
1358
+ declare type ToastStatus = 'default' | 'success' | 'error';
1359
+
1360
+ declare type ToastType = 'foreground' | 'background';
1361
+
1362
+ /**
1363
+ * Interface representing the state of a tqdm progress bar.
1364
+ *
1365
+ * Notes on each field:
1366
+ * - `n`: Current iteration count.
1367
+ * - `total`: Total number of iterations if known, `null` otherwise.
1368
+ * - `elapsed`: Time elapsed in seconds since the start of iteration.
1369
+ * - `ncols`: Number of columns for the progress bar. If `null`, not dynamically determined.
1370
+ * - `nrows`: Number of rows. Usually `null` as `tqdm` typically focuses on columns.
1371
+ * - `prefix`: Description string provided to `tqdm` via `desc`.
1372
+ * - `ascii`: Whether to use ASCII characters for the bar or a custom set of ASCII characters.
1373
+ * Can be `true`, `false`, or a string specifying the characters.
1374
+ * - `unit`: Iteration unit (e.g., 'it', 'steps', 'items').
1375
+ * - `unit_scale`: If `true`, `tqdm` scales the iteration values.
1376
+ * If a number, `tqdm` uses it as a scaling factor.
1377
+ * - `rate`: Current rate of iteration (iterations/second). `null` if rate cannot be computed.
1378
+ * - `bar_format`: Custom format string for the bar. If `null`, the default format is used.
1379
+ * - `postfix`: Additional data appended to the bar. Could be a string or an object passed via `set_postfix()`.
1380
+ * - `unit_divisor`: Divisor used when scaling units (e.g., 1000 or 1024).
1381
+ * - `initial`: Initial counter value if specified, else `null`.
1382
+ * - `colour`: Colour for the progress bar if supported, else `null`.
1383
+ */
1384
+ declare interface TqdmState {
1385
+ n: number;
1386
+ total?: number;
1387
+ elapsed: number;
1388
+ ncols?: number;
1389
+ nrows?: number;
1390
+ prefix?: string;
1391
+ ascii: boolean | string;
1392
+ unit: string;
1393
+ unit_scale: boolean | number;
1394
+ rate?: number;
1395
+ bar_format?: string;
1396
+ postfix?: string | Record<string, unknown>;
1397
+ unit_divisor: number;
1398
+ initial?: number;
1399
+ colour?: string;
1400
+ }
1401
+
1402
+ declare interface TypeOf {
1403
+ type: "type";
1404
+ value: SerializedType;
1405
+ }
1406
+
1407
+ declare interface UpdateableIOOptions {
1408
+ name?: string;
1409
+ hidden?: boolean;
1410
+ }
1411
+
1412
+ export declare const useFuncNodesContext: () => FuncNodesReactFlow;
1413
+
1414
+ export declare function useIOGetFullValue(): IOGetFullValue | undefined;
1415
+
1416
+ export declare function useIOGetFullValue(io: string): IOGetFullValue | undefined;
1417
+
1418
+ export declare function useIOGetFullValue(io: string | undefined): IOGetFullValue | undefined;
1419
+
1420
+ export declare function useIOStore(): IOStore;
1421
+
1422
+ export declare function useIOStore(io: string): IOStore | undefined;
1423
+
1424
+ export declare function useIOStore(io: string | undefined): IOStore | undefined;
1425
+
1426
+ export declare function useIOValueStore(): ValueStoreInterface;
1427
+
1428
+ export declare function useIOValueStore(io: string): ValueStoreInterface | undefined;
1429
+
1430
+ export declare function useIOValueStore(io: string | undefined): ValueStoreInterface | undefined;
1431
+
1432
+ declare type UseJSONStore<T extends JSONObject> = UseBoundStore<StoreApi<T>>;
1433
+
1434
+ export declare const useNodeStore: () => NodeStore;
1435
+
1436
+ export declare function useSetIOValue(): (value: any, set_default?: boolean) => void;
1437
+
1438
+ export declare function useSetIOValue(io: string): (value: any, set_default?: boolean) => void;
1439
+
1440
+ export declare function useSetIOValue(io: IOType): (value: any, set_default?: boolean) => void;
1441
+
1442
+ export declare function useSetIOValueOptions(): IOValueOptionsSetter;
1443
+
1444
+ export declare function useSetIOValueOptions(io: string): IOValueOptionsSetter;
1445
+
1446
+ export declare function useSetIOValueOptions(io: IOType): IOValueOptionsSetter;
1447
+
1448
+ export declare const useWorkerApi: () => {
1449
+ node: WorkerNodeManagerAPI | undefined;
1450
+ group: WorkerGroupManagerAPI | undefined;
1451
+ edge: WorkerEdgeManagerAPI | undefined;
1452
+ hooks: WorkerHookManagerAPI | undefined;
1453
+ lib: WorkerLibraryManagerAPI | undefined;
1454
+ worker: FuncNodesWorker | undefined;
1455
+ };
1456
+
1457
+ declare interface ValueStoreInterface {
1458
+ preview: DataStructure<AnyDataType, JSONType | undefined> | undefined;
1459
+ full: DataStructure<AnyDataType, JSONType | undefined> | undefined;
1460
+ }
1461
+
1462
+ export declare interface VersionedFuncNodesReactPlugin<V extends string = string> {
1463
+ renderpluginfactory?: (props: RenderPluginFactoryProps) => RendererPlugin;
1464
+ v: V;
1465
+ }
1466
+
1467
+ declare type WorkerAPI = {
1468
+ node: WorkerNodeManagerAPI;
1469
+ group: WorkerGroupManagerAPI;
1470
+ edge: WorkerEdgeManagerAPI;
1471
+ hooks: WorkerHookManagerAPI;
1472
+ lib: WorkerLibraryManagerAPI;
1473
+ };
1474
+
1475
+ declare class WorkerCommunicationManager extends AbstractWorkerHandler {
1476
+ private CHUNK_TIMEOUT;
1477
+ private _unique_cmd_outs;
1478
+ private messagePromises;
1479
+ private _chunk_cleanup_timer;
1480
+ private blobChunks;
1481
+ constructor(context: WorkerHandlerContext);
1482
+ private cleanupChunks;
1483
+ start(): void;
1484
+ stop(): void;
1485
+ send(data: any): void;
1486
+ _send_cmd({ cmd, kwargs, as_bytes, wait_for_response, response_timeout, retries, unique, }: {
1487
+ cmd: string;
1488
+ kwargs?: any;
1489
+ wait_for_response?: boolean;
1490
+ response_timeout?: number;
1491
+ as_bytes?: boolean;
1492
+ retries?: number;
1493
+ unique?: boolean;
1494
+ }): Promise<any>;
1495
+ receive(data: JSONMessage): Promise<any>;
1496
+ recieve_bytes(headerObj: {
1497
+ [key: string]: string | undefined;
1498
+ }, bytes: Uint8Array): Promise<void>;
1499
+ onbytes(data: Uint8Array): Promise<void>;
1500
+ }
1501
+
1502
+ declare class WorkerConnectionHealthManager extends AbstractWorkerHandler {
1503
+ private _responsive;
1504
+ private _last_pong;
1505
+ private pingInterval;
1506
+ private responsivenessCheckInterval;
1507
+ constructor(context: WorkerHandlerContext);
1508
+ start(): void;
1509
+ stop(): void;
1510
+ receivePong(): void;
1511
+ isResponsive(): boolean;
1512
+ }
1513
+
1514
+ declare class WorkerEdgeManager extends AbstractWorkerHandler implements WorkerEdgeManagerAPI {
1515
+ start(): void;
1516
+ stop(): void;
1517
+ add_edge({ src_nid, src_ioid, trg_nid, trg_ioid, replace, }: {
1518
+ src_nid: string;
1519
+ src_ioid: string;
1520
+ trg_nid: string;
1521
+ trg_ioid: string;
1522
+ replace?: boolean;
1523
+ }): Promise<any>;
1524
+ remove_edge({ src_nid, src_ioid, trg_nid, trg_ioid, }: {
1525
+ src_nid: string;
1526
+ src_ioid: string;
1527
+ trg_nid: string;
1528
+ trg_ioid: string;
1529
+ }): Promise<any>;
1530
+ }
1531
+
1532
+ declare interface WorkerEdgeManagerAPI {
1533
+ add_edge: (params: {
1534
+ src_nid: string;
1535
+ src_ioid: string;
1536
+ trg_nid: string;
1537
+ trg_ioid: string;
1538
+ replace?: boolean;
1539
+ }) => any;
1540
+ remove_edge: (params: {
1541
+ src_nid: string;
1542
+ src_ioid: string;
1543
+ trg_nid: string;
1544
+ trg_ioid: string;
1545
+ }) => any;
1546
+ }
1547
+
1548
+ declare interface WorkerEvent {
1549
+ type: "workerevent";
1550
+ event: string;
1551
+ data: {
1552
+ [key: string]: any | undefined;
1553
+ };
1554
+ }
1555
+
1556
+ declare class WorkerEventManager extends AbstractWorkerHandler {
1557
+ private _ns_event_intercepts;
1558
+ start(): void;
1559
+ stop(): void;
1560
+ _receive_edge_added(src_nid: string, src_ioid: string, trg_nid: string, trg_ioid: string): Promise<void>;
1561
+ _receive_groups(groups: NodeGroups): Promise<void>;
1562
+ _receive_node_added(data: SerializedNodeType): Promise<NodeType | undefined>;
1563
+ receive_workerevent({ event, data }: WorkerEvent): Promise<void>;
1564
+ intercept_ns_event(event: NodeSpaceEvent): Promise<NodeSpaceEvent>;
1565
+ receive_nodespace_event(ns_event: NodeSpaceEvent): Promise<void | NodeType>;
1566
+ add_ns_event_intercept(hook: string, callback: (event: NodeSpaceEvent) => Promise<NodeSpaceEvent>): () => void;
1567
+ }
1568
+
1569
+ declare class WorkerGroupManager extends AbstractWorkerHandler implements WorkerGroupManagerAPI {
1570
+ start(): void;
1571
+ stop(): void;
1572
+ group_nodes(nodeIds: string[], group_ids: string[]): Promise<NodeGroups>;
1573
+ remove_group(gid: string): Promise<void>;
1574
+ locally_update_group(action: GroupActionUpdate): void;
1575
+ }
1576
+
1577
+ declare interface WorkerGroupManagerAPI {
1578
+ group_nodes: (nodeIds: string[], group_ids: string[]) => Promise<NodeGroups>;
1579
+ remove_group: (gid: string) => Promise<void>;
1580
+ locally_update_group: (action: GroupActionUpdate) => void;
1581
+ }
1582
+
1583
+ /**
1584
+ * Defines the required context for handler classes, providing access
1585
+ * to the parent worker instance.
1586
+ */
1587
+ declare interface WorkerHandlerContext {
1588
+ worker: FuncNodesWorker;
1589
+ }
1590
+
1591
+ declare class WorkerHookManager extends AbstractWorkerHandler implements WorkerHookManagerAPI {
1592
+ _hooks: Map<string, ((p: WorkerHookProperties) => Promise<void>)[]>;
1593
+ start(): void;
1594
+ stop(): void;
1595
+ add_hook(hook: string, callback: (p: WorkerHookProperties) => Promise<void>): () => void;
1596
+ call_hooks(hook: string, data?: any): Promise<void>;
1597
+ }
1598
+
1599
+ declare interface WorkerHookManagerAPI {
1600
+ add_hook: (hook: string, callback: (p: WorkerHookProperties) => Promise<void>) => () => void;
1601
+ call_hooks: (hook: string, data?: any) => Promise<void>;
1602
+ }
1603
+
1604
+ declare interface WorkerHookProperties {
1605
+ worker: FuncNodesWorker;
1606
+ data: any;
1607
+ }
1608
+
1609
+ declare class WorkerLibraryManager extends AbstractWorkerHandler implements WorkerLibraryManagerAPI {
1610
+ start(): void;
1611
+ stop(): void;
1612
+ add_external_worker({ module, cls_module, cls_name, }: {
1613
+ module: string;
1614
+ cls_module: string;
1615
+ cls_name: string;
1616
+ }): Promise<any>;
1617
+ add_lib(lib: string, release: string): Promise<any>;
1618
+ remove_lib(lib: string): Promise<any>;
1619
+ get_available_modules(): Promise<GroupedAvailableModules>;
1620
+ remove_external_worker(worker_id: string, class_id: string): Promise<any>;
1621
+ }
1622
+
1623
+ declare interface WorkerLibraryManagerAPI {
1624
+ add_external_worker: (params: {
1625
+ module: string;
1626
+ cls_module: string;
1627
+ cls_name: string;
1628
+ }) => Promise<void>;
1629
+ add_lib: (lib: string, release: string) => Promise<void>;
1630
+ remove_lib: (lib: string) => Promise<void>;
1631
+ get_available_modules: () => Promise<GroupedAvailableModules>;
1632
+ remove_external_worker: (worker_id: string, class_id: string) => Promise<void>;
1633
+ }
1634
+
1635
+ declare class WorkerManager {
1636
+ private _wsuri;
1637
+ private workers;
1638
+ private ws;
1639
+ private reconnectAttempts;
1640
+ private maxReconnectAttempts;
1641
+ private initialTimeout;
1642
+ private maxTimeout;
1643
+ private zustand;
1644
+ private connectionTimeout?;
1645
+ on_setWorker: (worker: FuncNodesWorker | undefined) => void;
1646
+ constructor(wsuri: string, zustand: FuncNodesReactFlow);
1647
+ get wsuri(): string;
1648
+ get open(): boolean;
1649
+ private connect;
1650
+ on_ws_error(): void;
1651
+ onopen(): void;
1652
+ onmessage(event: string): void;
1653
+ setWorker(worker: FuncNodesWorker | undefined): void;
1654
+ restart_worker(workerid: string): Promise<void>;
1655
+ private calculateReconnectTimeout;
1656
+ private reconnect;
1657
+ onclose(): void;
1658
+ set_active(workerid: string): void;
1659
+ new_worker({ name, reference, copyLib, copyNS, in_venv, }: {
1660
+ name?: string;
1661
+ reference?: string;
1662
+ copyLib?: boolean;
1663
+ copyNS?: boolean;
1664
+ in_venv?: boolean;
1665
+ }): void;
1666
+ remove(): void;
1667
+ }
1668
+
1669
+ declare class WorkerManagerHandler extends AbstractFuncNodesReactFlowHandleHandler implements WorkerManagerManagerAPI {
1670
+ worker: FuncNodesWorker | undefined;
1671
+ workermanager: WorkerManager | undefined;
1672
+ workers: UseBoundStore<StoreApi<WorkersState>>;
1673
+ workerstate: UseBoundStore<StoreApi<FuncNodesWorkerState>>;
1674
+ _unsubscribeFromWorker: (() => void) | undefined;
1675
+ constructor(context: FuncNodesReactFlowHandlerContext);
1676
+ set_worker(worker: FuncNodesWorker | undefined): void;
1677
+ }
1678
+
1679
+ declare interface WorkerManagerManagerAPI {
1680
+ set_worker: (worker: FuncNodesWorker | undefined) => void;
1681
+ }
1682
+
1683
+ declare class WorkerNodeManager extends AbstractWorkerHandler implements WorkerNodeManagerAPI {
1684
+ start(): void;
1685
+ stop(): void;
1686
+ trigger_node(node_id: string): Promise<void>;
1687
+ add_node(node_id: string): Promise<NodeType | undefined>;
1688
+ remove_node(node_id: string): Promise<void>;
1689
+ locally_update_node(action: NodeActionUpdate): void;
1690
+ set_io_value({ nid, ioid, value, set_default, }: {
1691
+ nid: string;
1692
+ ioid: string;
1693
+ value: any;
1694
+ set_default: boolean;
1695
+ }): Promise<any>;
1696
+ set_io_value_options({ nid, ioid, values, keys, nullable, }: {
1697
+ nid: string;
1698
+ ioid: string;
1699
+ values: any[];
1700
+ keys: string[];
1701
+ nullable: boolean;
1702
+ }): Promise<any>;
1703
+ get_io_value({ nid, ioid }: {
1704
+ nid: string;
1705
+ ioid: string;
1706
+ }): Promise<any>;
1707
+ get_ios_values({ nid }: {
1708
+ nid: string;
1709
+ }): Promise<{
1710
+ [ioid: string]: any;
1711
+ }>;
1712
+ get_io_full_value({ nid, ioid }: {
1713
+ nid: string;
1714
+ ioid: string;
1715
+ }): Promise<DataStructure<any, JSONType | undefined>>;
1716
+ update_io_options({ nid, ioid, options, }: {
1717
+ nid: string;
1718
+ ioid: string;
1719
+ options: UpdateableIOOptions;
1720
+ }): Promise<any>;
1721
+ get_node_status(nid: string): Promise<any>;
1722
+ get_remote_node_state(nid: string): Promise<void>;
1723
+ }
1724
+
1725
+ declare interface WorkerNodeManagerAPI {
1726
+ set_io_value: (params: {
1727
+ nid: string;
1728
+ ioid: string;
1729
+ value: any;
1730
+ set_default: boolean;
1731
+ }) => any;
1732
+ set_io_value_options: (params: {
1733
+ nid: string;
1734
+ ioid: string;
1735
+ values: any[];
1736
+ keys: string[];
1737
+ nullable: boolean;
1738
+ }) => Promise<void>;
1739
+ get_io_full_value: (params: {
1740
+ nid: string;
1741
+ ioid: string;
1742
+ }) => Promise<any>;
1743
+ get_io_value: (params: {
1744
+ nid: string;
1745
+ ioid: string;
1746
+ }) => Promise<any>;
1747
+ get_ios_values: (params: {
1748
+ nid: string;
1749
+ }) => any;
1750
+ get_node_status: (nid: string) => any;
1751
+ update_io_options: (params: {
1752
+ nid: string;
1753
+ ioid: string;
1754
+ options: UpdateableIOOptions;
1755
+ }) => any;
1756
+ add_node: (node_id: string) => Promise<NodeType | undefined>;
1757
+ remove_node: (node_id: string) => Promise<void>;
1758
+ trigger_node: (node_id: string) => Promise<void>;
1759
+ locally_update_node: (action: NodeActionUpdate) => void;
1760
+ get_remote_node_state: (nid: string) => Promise<void>;
1761
+ }
1762
+
1763
+ declare interface WorkerProps {
1764
+ zustand?: FuncNodesReactFlow;
1765
+ uuid: string;
1766
+ on_error?: (error: string | Error) => void;
1767
+ on_sync_complete?: (worker: FuncNodesWorker) => Promise<void>;
1768
+ }
1769
+
1770
+ declare interface WorkerRepresentation {
1771
+ uuid: string;
1772
+ host: string;
1773
+ port: number;
1774
+ ssl: boolean;
1775
+ active: boolean;
1776
+ open: boolean;
1777
+ name: string | null;
1778
+ }
1779
+
1780
+ declare interface WorkersState {
1781
+ [key: string]: WorkerRepresentation | undefined;
1782
+ }
1783
+
1784
+ declare class WorkerSyncManager extends AbstractWorkerHandler {
1785
+ on_sync_complete: (worker: FuncNodesWorker) => Promise<void>;
1786
+ _nodeupdatetimer: ReturnType<typeof setTimeout> | undefined;
1787
+ _local_nodeupdates: Map<string, PartialSerializedNodeType>;
1788
+ _local_groupupdates: Map<string, Partial<NodeGroup>>;
1789
+ _groupupdatetimer: ReturnType<typeof setTimeout> | undefined;
1790
+ constructor(context: WorkerSyncManagerContext);
1791
+ start(): void;
1792
+ stop(): void;
1793
+ stepwise_fullsync(): Promise<void>;
1794
+ sync_lib(): Promise<void>;
1795
+ sync_external_worker(): Promise<void>;
1796
+ sync_funcnodes_plugins(): Promise<void>;
1797
+ sync_view_state(): Promise<void>;
1798
+ sync_nodespace(): Promise<void>;
1799
+ fullsync(): Promise<void>;
1800
+ sync_local_node_updates(): void;
1801
+ sync_local_group_updates(): void;
1802
+ locally_update_node(action: NodeActionUpdate): void;
1803
+ locally_update_group(action: GroupActionUpdate): void;
1804
+ }
1805
+
1806
+ declare interface WorkerSyncManagerContext extends WorkerHandlerContext {
1807
+ on_sync_complete: ((worker: FuncNodesWorker) => Promise<void>) | undefined;
1808
+ }
1809
+
1810
+ export { }