import type { BaseNode } from "./base_node.js"; import type { UAMethod } from "./ua_method.js"; import type { UAObject } from "./ua_object.js"; import type { UAObjectType } from "./ua_object_type.js"; import type { UAVariable } from "./ua_variable.js"; import type { UAVariableType } from "./ua_variable_type.js"; /** * @private */ export declare function fullPath(node: BaseNode): string; /** @private */ export declare function fullPath2(node: BaseNode | null | undefined): string; /** @private */ export declare function exploreNode(node: BaseNode): void; interface CloneInfo { cloned: UAObject | UAVariable | UAMethod; original: UAObject | UAVariable | UAMethod | UAVariableType | UAObjectType; } export declare class CloneHelper { level: number; private _context; private _contextStack; private readonly mapTypeInstanceChildren; pad(): string; /** each context in turn: the (original -> cloned) map of one type/instance pair */ forEachContext(callback: (context: ReadonlyMap) => void): void; getClonedArray(): CloneInfo[]; pushContext({ clonedParent, originalParent }: { clonedParent: TC; originalParent: TO; }): void; popContext(): void; registerClonedObject({ clonedNode, originalNode }: { clonedNode: TC; originalNode: TO; }): void; getCloned({ originalParent, clonedParent, originalNode }: { originalParent: BaseNode; clonedParent: BaseNode; originalNode: UAVariable | UAObject; }): UAObject | UAVariable | UAMethod | null; } export declare function reconstructNonHierarchicalReferences(extraInfo: CloneHelper): void; /** * recreate functional group types according to type definition * * @param baseType */ export declare function reconstructFunctionalGroupType(extraInfo: CloneHelper): void; /** * A node that a type declares under two hierarchical parents is instantiated once, under whichever * parent the walk reached first: OPC 40700 shares MachineryOperationMode between * MachineryBuildingBlocks (HasAddIn) and Monitoring.Status (HasComponent). This pass gives the * instance the other parent references: for every cloned node, every hierarchical parent of its * original that was cloned in the same context gets the same reference to the clone, unless it * has it already. Nothing is instantiated here: a parent that was not requested stays absent. */ export declare function reconstructSharedHierarchicalReferences(extraInfo: CloneHelper): void; export {};