/** * @module node-opcua-address-space * * Extracted from namespace_impl.ts to break an import cycle. * * namespace_impl builds `_constructors_map` at module scope, which references * UAMethodImpl and seven sibling constructors. ua_method_impl imported * _handle_hierarchy_parent back from namespace_impl, closing the loop. * * Under CommonJS that is harmless: whichever module loads second sees a partially * populated exports object, and nothing touches the missing half until a function runs. * Under ESM the class declarations are in the temporal dead zone while the cycle is being * evaluated, so building a map of constructors at module scope throws a ReferenceError. * * This module depends only on base_node_impl and leaf packages, so nothing points back * into namespace_impl and the cycle is gone rather than moved. */ import type { AddReferenceOpts, BaseNode } from "node-opcua-address-space-base"; import { NodeId, type NodeIdLike } from "node-opcua-nodeid"; import type { AddressSpacePrivate } from "./address_space_private.js"; /** * convert a 'string', NodeId or Object into a valid and existing object * @private */ export declare function _coerce_parent(addressSpace: AddressSpacePrivate, value: null | string | BaseNode | undefined | NodeIdLike, coerceFunc: (data: string | NodeId | BaseNode) => BaseNode | null): BaseNode | null; export interface HandleHierarchyParentOptions { addInOf?: NodeIdLike | BaseNode | null | undefined; componentOf?: NodeIdLike | BaseNode | null | undefined; propertyOf?: NodeIdLike | BaseNode | null | undefined; organizedBy?: NodeIdLike | BaseNode | null | undefined; encodingOf?: NodeIdLike | BaseNode | null | undefined; } export declare function _handle_hierarchy_parent(addressSpace: AddressSpacePrivate, references: AddReferenceOpts[], options: HandleHierarchyParentOptions): void;