import { EventEmitter } from "events" ; export type Duration = number ; import { AccessRestrictionsFlag , AttributeIds , BrowseDirection , LocalizedText , NodeClass , QualifiedName , QualifiedNameLike , QualifiedNameOptions } from "node-opcua-data-model" ; import { DataType } from "node-opcua-variant" ; import { DataValue , DataValueOptions } from "node-opcua-data-value" ; import { NodeId , NodeIdLike } from "node-opcua-nodeid" ; import { NumericRange } from "node-opcua-numeric-range" ; import { StatusCode } from "node-opcua-status-code" ; import { BrowseDescription , BrowseDescriptionOptions , ReferenceDescription , RelativePathElement , RolePermissionType , RolePermissionTypeOptions , WriteValueOptions } from "node-opcua-types" ; import { UAString , UInt32 } from "node-opcua-basic-types" ; import { ReferenceTypeIds } from "node-opcua-constants" ; import { INamespace } from "./namespace" ; import { IAddressSpace } from "./address_space" ; import { ModellingRuleType } from "./modelling_rule_type" ; import { ISessionContext } from "./session_context" ; import { UAObject } from "./ua_object" ; import { UAReferenceType } from "./ua_reference_type" ; import { UAVariable } from "./ua_variable" ; import { UAVariableT } from "./ua_variable_t" ; import { UAReference } from "./ua_reference" ; export declare interface AddReferenceOpts { referenceType : keyof ReferenceTypeIds | NodeIdLike | UAReferenceType ; nodeId : NodeIdLike | BaseNode ; /**
     * default = true
     */ isForward ? : boolean ; _referenceType ? : UAReferenceType ; node ? : BaseNode ; } export interface ConstructNodeIdOptions { nodeId ? : NodeIdLike | null ; browseName : QualifiedName ; nodeClass : NodeClass ; references ? : UAReference [ ] ; } export interface IPropertyAndComponentHolder { getComponentByName ( componentName ) : UAObject | UAVariable | null ; getComponentByName ( componentName , namespaceIndex ? ) : UAObject | UAVariable | null ; getPropertyByName ( propertyName ) : UAVariable | null ; getPropertyByName ( propertyName , namespaceIndex ? ) : UAVariable | null ; getAggregates ( ) : BaseNode [ ] ; getComponents ( ) : BaseNode [ ] ; getProperties ( ) : BaseNode [ ] ; getNotifiers ( ) : BaseNode [ ] ; } export interface BrowseDescriptionOptions2 extends BrowseDescriptionOptions { browseDirection ? : BrowseDirection ; referenceTypeId ? : NodeIdLike ; includeSubtypes ? : boolean ; nodeClassMask : UInt32 ; resultMask : UInt32 ; } export declare class BaseNode extends EventEmitter { public get addressSpace ( ) : IAddressSpace ; public readonly browseName : QualifiedName ; public get displayName ( ) : LocalizedText [ ] ; public get description ( ) : LocalizedText ; public readonly nodeClass : NodeClass ; public readonly nodeId : NodeId ; public get modellingRule ( ) : ModellingRuleType | undefined ; public get parentNodeId ( ) : NodeId | undefined ; public get accessRestrictions ( ) : AccessRestrictionsFlag | undefined ; public get rolePermissions ( ) : RolePermissionType [ ] | undefined ; public get namespaceIndex ( ) : number ; public get namespaceUri ( ) : string ; public get namespace ( ) : INamespace ; public onFirstBrowseAction ? : ( this : BaseNode ) => Promise < void > ; /**
     * return a complete name of this object by pre-pending
     * name of its parent(s) to its own name
     */ public fullName ( ) ; public addReference ( options ) ; public removeReference ( referenceOpts ) ; public readAttribute ( context , attributeId , indexRange ? , dataEncoding ? ) ; public writeAttribute ( context , writeValue , callback ) ; /**
     * return a array with the event source of this object.
     * self = HasEventSource => nodes
     */ public getEventSources ( ) ; /**
     * return a array of the objects for which this node is an EventSource
     * nodes = HasEventSource => self
     */ public getEventSourceOfs ( ) ; param locale public getDisplayName ( locale ? ) ; /**
     * private
     */ public install_extra_properties ( ) ; public browseNodeByTargetName ( relativePathElement , isLast ) ; /**
     * find all the references that are of type **`reference`** or a sub type of **`reference`**, in the
     * direction specified by **`browseDirection`**
     *
     *  * BrowseDirection.Forward direction is implied if browseDirection flags is omitted.
     */ public findReferencesEx ( referenceType , browseDirection ? ) ; /**
     * find all the references that are strictly of type **`reference`**.
     * The isForward boolean flag specifies the direction of the references to be looked for.
     *
     * Forward direction is implied if omitted.
     */ public findReferences ( referenceType , isForward ? ) ; /**
     * find the the references that are strictly of type **`reference`**.
     *
     * The isForward boolean flag specifies the direction of the references to be looked for.
     *
     * Forward direction is implied if omitted.
     *
     * * will throw an exception  if more than one reference exists with the referenceType.
     * * will return null if no reference exists.
     */ public findReference ( referenceType , isForward ? ) ; /**
     * find all the nodes that are referenced by references of type **`reference`** or a sub type of **`reference`**, in the
     * direction specified by **`browseDirection`**
     *
     *  * BrowseDirection.Forward direction is implied if browseDirection flags is omitted.
     */ public findReferencesExAsObject ( referenceType , browseDirection ? ) ; /**
     *  find all the nodes that are referenced by references strictly of type **`reference`**.
     *
     * The isForward boolean flag specifies the direction of the references to be looked for.
     *
     * Forward direction is implied if omitted.
     *
     * * will throw an exception  if more than one reference exists with the referenceType.
     * * will return null if no reference exists.
     */ public findReferencesAsObject ( referenceType , isForward ? ) ; public allReferences ( ) ; public getChildByName ( browseName ) ; public getChildByName ( browseName , namespaceIndex ? ) ; private public propagate_back_references ( ) ; /**
     * browse the node to extract information requested in browseDescription
     */ public browseNode ( browseDescription , session ? ) ; param rolePermissions setRolePermissions ( rolePermissions ) ; getRolePermissions ( inherited ) ; /**
     * setAccessRestriction
     */ setAccessRestrictions ( accessRestrictions ) ; /**
     * get effective accessRestrictions
     * if (inherited is true) and node has no accessRestrictions, then
     * default accessRestriction from namespace is returned
     * if (inherited is false) and node has no accessRestrictions, then
     * AccessRestrictionsFlag.None is returned
     *
     */ getAccessRestrictions ( inherited ) ; /**
     * NodeVersion (Optional) String The NodeVersion Property is used to indicate the version of a Node.
     * The NodeVersion Property is updated each time a Reference is added or deleted to the Node the Property
     * belongs to. Attribute value changes do not cause the NodeVersion to change.
     * Clients may read the NodeVersion Property or subscribe to it to determine when the structure of a Node has changed.
     */ nodeVersion ? : UAVariableT < UAString , DataType . String > ; /**
     *
     */ getAggregates ( ) ; }