import { AreaExtensions, AreaPlugin } from 'rete-area-plugin'; import type { NodeEditor, NodeEditorSaveData } from './NodeEditor.svelte'; import type { AreaExtra } from '../area/AreaExtra'; import type { Schemes } from '../schemes'; import { ControlFlowEngine, DataflowEngine } from 'rete-engine'; import { Connection, Node, type NodeSaveData } from '../nodes/Node.svelte'; import { type Readable, type Writable } from 'svelte/store'; import { PythonDataflowEngine } from '../engine/PythonDataflowEngine'; import type { MakutuClassRepository } from '../../backend-interaction/types'; import type { AutoArrangePlugin } from 'rete-auto-arrange-plugin'; import type { CommentPlugin } from '../plugins/CommentPlugin'; import type { HistoryPlugin } from '../plugins/history'; import { type ConnectionPathType } from '../connection-path'; import type { NotificationsManager } from '../plugins/notifications'; import { Rect, XmlSchema, type SaveData } from '@selenite/commons'; import { Modal } from '@selenite/commons'; import type { BaseComponent, ComponentParams, ComponentSupportInterface } from '../components'; import { NodeLayout } from './NodeLayout'; import { NodeSelection as NodeSelector, type SelectOptions, type SelectorEntity } from './NodeSelection.svelte'; import { NodeStorage } from '../storage'; import { CodeIntegration } from './CodeIntegration.svelte'; import type { ConnectionPlugin } from '../setup/ConnectionSetup'; import { SvelteMap, SvelteSet } from 'svelte/reactivity'; import { NodeSearch } from './NodeSearch.svelte'; type WithoutFactory = Omit; export declare class NodeFactory implements ComponentSupportInterface { #private; components: BaseComponent[]; addComponentByClass

, C extends BaseComponent>(componentClass: new (params: P) => C, params: Omit): C; minimapEnabled: boolean; notifications: NotificationsManager; readonly connectionPathType: Writable; surfaceRect: Rect; lastSelectedNode: Node>, { [x: string]: import("../socket").Socket; }, { [x: string]: import("../control").Control; }, Record, Record> | undefined; editor: NodeEditor; get previewedNodes(): SvelteSet>, { [x: string]: import("../socket").Socket; }, { [x: string]: import("../control").Control; }, Record, Record>>; modalStore: Readable; private state; id: string; useState(id: string, key: string, value?: T): { value: T; get: () => T; set: (value: T) => void; }; getState(id: string, key: string, initial?: T): T; setState(id: string, key: string, value: unknown): void; lastAddedNode?: Node; addNode>(nodeClass: new (params: Params) => T, params?: WithoutFactory): Promise; addNodes(nodes: (Node | SaveData)[]): Promise; getNodes(): Node[]; get storage(): NodeStorage; readonly pythonDataflowEngine: PythonDataflowEngine; loadNode(nodeSaveData: NodeSaveData): Promise; effetRootCleanup: (() => void) | undefined; private cleanup; destroyArea(): void; destroy(): void; /** * Moves the view to the center of the nodes, with a zoom such that all nodes are visible. * @param nodes - Nodes to center the view on. If not provided, all nodes are used. */ centerView(nodes?: Node[]): Promise | undefined; openGraphForm(defaultName?: string): Promise; /** * Loads a graph from a save. * @param editorSaveData - Save data to load. */ loadGraph(editorSaveData: NodeEditorSaveData): Promise; get area(): AreaPlugin | undefined; transform: { zoom: number; }; set area(area: AreaPlugin | undefined); readonly makutuClasses?: MakutuClassRepository; readonly dataflowEngine: DataflowEngine; private readonly controlflowEngine; selector: NodeSelector; get selection(): NodeSelector; search: NodeSearch; arrange?: AutoArrangePlugin; history: HistoryPlugin | undefined; connectionPlugin?: ConnectionPlugin; comment: CommentPlugin | undefined; get xmlSchemas(): SvelteMap; reactivateDataflowTimeout: NodeJS.Timeout | null; /** * Nodes in the editor. */ get nodes(): Node>, { [x: string]: import("../socket").Socket; }, { [x: string]: import("../control").Control; }, Record, Record>[]; /** * Connections in the editor. */ get connections(): Connection>, { [x: string]: import("../socket").Socket; }, { [x: string]: import("../control").Control; }, Record, Record>, Node>, { [x: string]: import("../socket").Socket; }, { [x: string]: import("../control").Control; }, Record, Record>>[]; /** * Executes callback without running dataflow engines. * * It is useful to execute multiple operations without unnecessarily running dataflow engines. * @param callback Callback to execute */ bulkOperation(callback: () => void | Promise): Promise; /** * Removes all nodes and connections from the editor. */ clear(): Promise; layout: NodeLayout; codeIntegration: CodeIntegration; constructor(params: { editor: NodeEditor; area?: AreaPlugin; makutuClasses?: MakutuClassRepository; arrange?: AutoArrangePlugin; history?: HistoryPlugin; comment?: CommentPlugin; accumulating?: ReturnType; xmlSchemas?: Record; }); commentSelectedNodes(params?: { text?: string; }): void; /** Delete all selected elements */ deleteSelectedElements(): Promise; /** * Removes a node from the editor, as well as its connections. * @param target node or node id */ removeNode(target: string | Node): Promise; enable(): void; disable(): void; getNode(id: string): Node | undefined; create(type: new () => T): T; getEditor(): NodeEditor; getControlFlowEngine(): ControlFlowEngine; getArea(): AreaPlugin | undefined; resetSuccessors(node: Node): void; downloadGraph(): void; loadFromFile(): void; lastSearchNodeIndex: number; /** * Finds a node whose label or name matches the query. * Repeated calls will cycle through the nodes. * @param query * @returns found node or undefined */ findNode(query: string): Node | undefined; focusNode(node?: Node): void; focusNodes(nodes?: Node[], options?: AreaExtensions.ZoomAt): void; select(entity: SelectorEntity, options?: SelectOptions): void; selectConnection(id: string): void; selectAll(): void; unselectAll(): void; dataflowCache: SvelteMap>, { [x: string]: import("../socket").Socket; }, { [x: string]: import("../control").Control; }, Record, Record>, Record>; runDataflowEngines(): Promise; resetDataflow(node?: Node): Promise; } export {};