import { type Setup } from '../setup/Setup'; import { NodeFactory } from '../editor'; import { Node } from '../nodes'; import type { Position } from '../common'; import '../nodes'; import type { Control, Socket } from '../socket'; import { type XmlConfig } from '../nodes/XML'; import { XmlSchema, type ShowContextMenu, type MenuItem } from '@selenite/commons'; export type NodeMenuItem = { /** Label of the node. */ label: string; /** Function that creates the node. */ nodeClass: NC; params: ConstructorParameters[0]; /** Menu path of the node. */ path: string[]; /** Search tags of the node. */ tags: string[]; /** Description of the node. */ description: string; inputTypes: Node['inputTypes']; outputTypes: Node['outputTypes']; }; type Ins = Record; type Outs = Record; type Controls = Record; type State = Record; type Params = Record; export declare function nodeItem>(item: NodeMenuItem): NodeMenuItem; export declare function xmlItem({ label, xmlConfig }: { label?: string; xmlConfig: XmlConfig; }): NodeMenuItem; export declare function xmlNodeItems({ schema, basePath, priorities }: { schema: XmlSchema; basePath?: string[]; priorities?: Record>; }): NodeMenuItem[]; export declare let baseNodeMenuItems: NodeMenuItem[]; export declare function getMenuItemsFromNodeItems({ factory, pos, nodeItems, action }: { factory: NodeFactory; pos: Position; nodeItems: NodeMenuItem[]; action?: (n: Node) => void; }): MenuItem[]; export declare function createNodeMenuItem(params: Partial> & { nodeClass: NodeMenuItem['nodeClass']; params: NodeMenuItem['params']; }): NodeMenuItem; export declare function contextMenuSetup({ showContextMenu, additionalNodeItems }: { showContextMenu: ShowContextMenu; additionalNodeItems?: NodeMenuItem[]; }): Setup; export {};