import { NodeId , NodeIdLike } from "node-opcua-nodeid" ; import { LocalizedText , NodeClass , QualifiedName } from "node-opcua-data-model" ; import { BaseNode } from "./base_node" ; import { ModellingRuleType } from "./modelling_rule_type" ; import { INamespace } from "./namespace" ; import { UAMethod } from "./ua_method" ; import { UAObject } from "./ua_object" ; import { UAObjectType } from "./ua_object_type" ; import { UAReference } from "./ua_reference" ; import { UAVariable } from "./ua_variable" ; export interface CloneFilter { shouldKeep ( node ) : boolean ; filterFor ( childInstance ) : CloneFilter ; } export const defaultCloneFilter = { shouldKeep : ( ) => true , filterFor ( node ) { return this ; } } ; export interface CloneExtraInfo { level : number ; pad ( ) : string ; registerClonedObject ( clonedObject , originalObject ) : void ; } export const defaultCloneExtraInfo = { level : 0 , pad ( this ) { return " " . padEnd ( this . level * 2 ) ; } , registerClonedObject ( clonedObject , originalObject ) { } } ; export interface CloneOptions { namespace : INamespace ; references ? : UAReference [ ] ; nodeId ? : string | NodeIdLike | null ; nodeClass ? : NodeClass ; browseName ? : QualifiedName ; descriptions ? : LocalizedText ; modellingRule ? : ModellingRuleType ; accessLevel ? : number ; arrayDimensions ? : number [ ] | null ; dataType ? : NodeId ; historizing ? : boolean ; minimumSamplingInterval ? : number ; userAccessLevel ? : number ; valueRank ? : number ; eventNotifier ? : number ; symbolicName ? : string ; executable ? : boolean ; methodDeclarationId ? : NodeId ; componentOf ? : UAObjectType | UAObject ; copyAlsoModellingRules ? : boolean ; }