opcjs-base 0.1.10 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -107,7 +107,7 @@ declare class NodeId {
107
107
  /**
108
108
  * OPC UA ExpandedNodeId Type
109
109
  *
110
- * ExpandedNodeId extends NodeId with optional server identification,
110
+ * ExpandedNodeId wraps a NodeId with optional server identification,
111
111
  * allowing nodes to be identified across multiple servers.
112
112
  *
113
113
  * @module expanded-nodeid
@@ -116,53 +116,83 @@ declare class NodeId {
116
116
  /**
117
117
  * OPC UA ExpandedNodeId
118
118
  *
119
- * An ExpandedNodeId extends NodeId with optional server identification,
119
+ * An ExpandedNodeId wraps a NodeId with optional server identification,
120
120
  * allowing nodes to be identified across multiple servers.
121
121
  *
122
122
  * @example
123
123
  * ```typescript
124
124
  * import { ExpandedNodeId } from '@opcua/types';
125
125
  *
126
- * const expandedNodeId = new ExpandedNodeId(2, 123, "http://opcfoundation.org/UA/", 1);
126
+ * const expandedNodeId = new ExpandedNodeId(
127
+ * new NodeId(2, 123),
128
+ * 'http://opcfoundation.org/UA/',
129
+ * 1,
130
+ * );
127
131
  * console.log(expandedNodeId.toString());
128
132
  * // "svr=1;nsu=http://opcfoundation.org/UA/;ns=2;i=123"
129
133
  * ```
130
134
  */
131
- declare class ExpandedNodeId extends NodeId {
132
- /**
133
- * The server index (optional, for cross-server references)
134
- */
135
+ declare class ExpandedNodeId {
136
+ /** The wrapped NodeId. */
137
+ readonly nodeId: NodeId;
138
+ /** The server index (optional, for cross-server references). */
135
139
  readonly serverIndex?: number;
136
- /**
137
- * The namespace URI (optional, alternative to namespace index)
138
- */
140
+ /** The namespace URI (optional, alternative to the namespace index on nodeId). */
139
141
  readonly namespaceUri?: string;
140
142
  /**
141
- * Create a new ExpandedNodeId
143
+ * Create a new ExpandedNodeId.
142
144
  *
143
- * @param namespace - The namespace index
144
- * @param identifier - The identifier
145
+ * @param nodeId - The wrapped NodeId
145
146
  * @param namespaceUri - Optional namespace URI
146
147
  * @param serverIndex - Optional server index
147
148
  */
148
- constructor(namespace?: number, identifier?: number | string | Uint8Array, namespaceUri?: string, serverIndex?: number);
149
- /**
150
- * Convert ExpandedNodeId to string representation
151
- *
152
- * @returns String representation of the ExpandedNodeId
153
- */
149
+ constructor(nodeId: NodeId, namespaceUri?: string, serverIndex?: number);
150
+ /** Convert ExpandedNodeId to string representation. */
154
151
  toString(): string;
155
152
  }
156
153
 
154
+ /**
155
+ * Enumeration of variant types based on BuiltinType NodeIds.
156
+ */
157
+ declare enum BuiltInType {
158
+ Null = 0,
159
+ Boolean = 1,
160
+ SByte = 2,
161
+ Byte = 3,
162
+ Int16 = 4,
163
+ UInt16 = 5,
164
+ Int32 = 6,
165
+ UInt32 = 7,
166
+ Int64 = 8,
167
+ UInt64 = 9,
168
+ Float = 10,
169
+ Double = 11,
170
+ String = 12,
171
+ DateTime = 13,
172
+ Guid = 14,
173
+ ByteString = 15,
174
+ XmlElement = 16,
175
+ NodeId = 17,
176
+ ExpandedNodeId = 18,
177
+ StatusCode = 19,
178
+ QualifiedName = 20,
179
+ LocalizedText = 21,
180
+ ExtensionObject = 22,
181
+ DataValue = 23,
182
+ Variant = 24,
183
+ DiagnosticInfo = 25
184
+ }
185
+
157
186
  /**
158
187
  * OPC UA StatusCode Type (i=19)
159
188
  *
160
189
  * StatusCode is a 32-bit unsigned integer that indicates the quality of a result.
161
190
  * The format is: [Severity:2][SubCode:14][Code:16]
162
191
  *
163
- * @see OPC UA Part 4, Section 7.34
164
- * @see OPC UA Part 6, Section 5.1.1
192
+ * @see OPC UA Part 4, Section 7.38
193
+ * @see OPC UA Part 6, Annex A
165
194
  */
195
+
166
196
  declare enum StatusCode {
167
197
  Good,
168
198
  Uncertain,
@@ -412,6 +442,89 @@ declare enum StatusCode {
412
442
  BadSyntaxError,
413
443
  BadMaxConnectionsReached
414
444
  }
445
+ /**
446
+ * Converts an OPC UA status code to a human-readable string.
447
+ *
448
+ * OPC UA status codes have two independent parts (OPC UA Part 4, §7.38 / Part 6, §5.1.1):
449
+ *
450
+ * Bits 31:30 Severity 00=Good, 01=Uncertain, 10/11=Bad
451
+ * Bits 27:16 SubCode Named code (e.g. 0x34 = NodeIdUnknown)
452
+ * Bit 15 StructureChanged – data type structure of the variable changed
453
+ * Bit 14 SemanticsChanged – engineering unit or range of the variable changed
454
+ * Bits 13:12 InfoType 00=not used, 01=DataValue info bits active
455
+ * Bit 11 Overflow – (DataValue) notifications dropped from queue
456
+ * Bits 10:9 LimitBits – (DataValue) 00=None, 01=Low, 10=High, 11=Constant
457
+ *
458
+ * All named codes (BadNodeIdUnknown, Good, …) have their lower 16 bits = 0.
459
+ * The lower 16 bits are flag bits and are decoded separately via {@link StatusCodeGetFlagBits}.
460
+ *
461
+ * @see OPC UA Part 4, Section 7.38
462
+ * @see OPC UA Part 6, Section 5.1.1 and Annex A
463
+ */
464
+ /**
465
+ * Returns the name of the StatusCode enum member for the given code.
466
+ * Flag bits (lower 16 bits) are masked off before looking up the name.
467
+ * Returns the hex string if the code is not in the enum.
468
+ *
469
+ * Examples:
470
+ * StatusCodeToString(0x00000000) → "Good"
471
+ * StatusCodeToString(0x80340000) → "BadNodeIdUnknown"
472
+ * StatusCodeToString(0x00000400) → "Good" (flags ignored for name lookup)
473
+ * StatusCodeToString(undefined) → "Unknown"
474
+ *
475
+ * @see OPC UA Part 4, Section 7.38
476
+ */
477
+ declare function StatusCodeToString(statusCode?: number): string;
478
+ /**
479
+ * Returns the full status code value (including flag bits) as an uppercase hex string.
480
+ *
481
+ * Examples:
482
+ * StatusCodeToStringNumber(0x00000000) → "0x00000000"
483
+ * StatusCodeToStringNumber(0x80340000) → "0x80340000"
484
+ * StatusCodeToStringNumber(0x00000400) → "0x00000400"
485
+ */
486
+ declare function StatusCodeToStringNumber(statusCode?: number): string;
487
+ /** Flag bits decoded from the lower 16 bits of an OPC UA StatusCode value. */
488
+ interface StatusCodeFlagBits {
489
+ /** Bit 15 – the data type structure of the variable has changed. */
490
+ StructureChanged: boolean;
491
+ /** Bit 14 – engineering unit or range of the variable has changed. */
492
+ SemanticsChanged: boolean;
493
+ /** Bit 11 – notifications were dropped from the queue (DataValue). */
494
+ Overflow: boolean;
495
+ /** Bits 10:9 = 01 – value is pegged at the low engineering limit. */
496
+ LimitLow: boolean;
497
+ /** Bits 10:9 = 10 – value is pegged at the high engineering limit. */
498
+ LimitHigh: boolean;
499
+ /** Bits 10:9 = 11 – value is a constant and cannot change. */
500
+ LimitConstant: boolean;
501
+ }
502
+ /**
503
+ * Decodes the flag bits (lower 16 bits) of a StatusCode value.
504
+ *
505
+ * Examples:
506
+ * StatusCodeGetFlagBits(0x00000000) → { StructureChanged: false, SemanticsChanged: false, … }
507
+ * StatusCodeGetFlagBits(0x00000400) → { …, LimitHigh: true, … }
508
+ * StatusCodeGetFlagBits(0x00008C00) → { StructureChanged: true, Overflow: true, LimitHigh: true, … }
509
+ *
510
+ * @see OPC UA Part 6, Section 5.1.1, Table 49
511
+ */
512
+ declare function StatusCodeGetFlagBits(statusCode?: number): StatusCodeFlagBits;
513
+ /**
514
+ * Returns true if the base code of `statusCode` matches the given `expected` StatusCode enum value.
515
+ * Flag bits (lower 16 bits) are masked off before comparison.
516
+ *
517
+ * Examples:
518
+ * StatusCodeIs(0x00000000, StatusCode.Good) → true
519
+ * StatusCodeIs(0x00000400, StatusCode.Good) → true (flag bits ignored)
520
+ * StatusCodeIs(1024, StatusCode.Good) → true (1024 = 0x00000400)
521
+ * StatusCodeIs(0x80340000, StatusCode.BadNodeIdUnknown) → true
522
+ * StatusCodeIs(0x80340000, StatusCode.Good) → false
523
+ *
524
+ * @param statusCode - The raw status code value to test.
525
+ * @param expected - The StatusCode enum member to compare against.
526
+ */
527
+ declare function StatusCodeIs(statusCode: number, expected: StatusCode): boolean;
415
528
 
416
529
  /**
417
530
  * OPC UA QualifiedName Type
@@ -623,9 +736,9 @@ declare enum ExtensionObjectEncoding {
623
736
  */
624
737
  declare class ExtensionObject {
625
738
  /**
626
- * The NodeId that identifies the type of structure encoded in the body.
739
+ * The NodeId (or ExpandedNodeId) that identifies the type of structure encoded in the body.
627
740
  */
628
- readonly typeId: NodeId;
741
+ readonly typeId: NodeId | ExpandedNodeId;
629
742
  /**
630
743
  * The encoding used for the body.
631
744
  */
@@ -644,7 +757,7 @@ declare class ExtensionObject {
644
757
  * @param encoding - The encoding type
645
758
  * @param body - The encoded body (null for None encoding)
646
759
  */
647
- constructor(typeId: NodeId, encoding?: ExtensionObjectEncoding, data?: IOpcType);
760
+ constructor(typeId: NodeId | ExpandedNodeId, encoding?: ExtensionObjectEncoding, data?: IOpcType);
648
761
  /**
649
762
  * Creates an ExtensionObject with no body.
650
763
  *
@@ -667,7 +780,7 @@ declare class ExtensionObject {
667
780
  * @param body - The XML encoded body
668
781
  * @returns A new ExtensionObject with Xml encoding
669
782
  */
670
- static newXml(typeId: NodeId, data: IOpcType): ExtensionObject;
783
+ static newXml(typeId: NodeId | ExpandedNodeId, data: IOpcType): ExtensionObject;
671
784
  }
672
785
 
673
786
  /**
@@ -717,26 +830,6 @@ declare class XmlElement {
717
830
  * @returns The number of characters
718
831
  */
719
832
  get length(): number;
720
- /**
721
- * Validate if this XmlElement contains valid XML
722
- *
723
- * Note: This is a simple check, not a full XML validator.
724
- * For production use, consider using a proper XML parser.
725
- *
726
- * @returns true if the string appears to be valid XML
727
- *
728
- * @example
729
- * ```typescript
730
- * const xml = new XmlElement("<root></root>");
731
- * xml.isValid(); // true
732
- * ```
733
- */
734
- isValid(): boolean;
735
- /**
736
- * Basic XML structure validation (for Node.js environment)
737
- * Checks for matching opening and closing tags
738
- */
739
- private static checkBasicXmlStructure;
740
833
  /**
741
834
  * Escape special XML characters in text content
742
835
  *
@@ -925,6 +1018,95 @@ declare class DiagnosticInfo {
925
1018
  toString(includeInner?: boolean): string;
926
1019
  }
927
1020
 
1021
+ /**
1022
+ * OPC UA Primitive Type Mappings
1023
+ *
1024
+ * We try to use the JS built in types wherever we can. But sometimes, often in the context
1025
+ * where Variant is involved, we need to have a wrapper type that includes the BuiltInType
1026
+ * for type checking and encoding purposes. In those cases, we define a wrapper type with a
1027
+ * value and a type field. For simple cases like boolean, we can just use the native boolean
1028
+ * type directly as UaBoolean.
1029
+ * @module primitives
1030
+ */
1031
+
1032
+ type UaBoolean = boolean;
1033
+ /**
1034
+ * OPC UA Builtin Type Numeric IDs
1035
+ *
1036
+ * These correspond to the NodeId numeric identifiers defined in OPC UA Part 6, Table 1.
1037
+ */
1038
+ type UaSbyte = {
1039
+ value: number;
1040
+ readonly type: BuiltInType.SByte;
1041
+ };
1042
+ declare const uaSbyte: (value: number) => UaSbyte;
1043
+ type UaByte = {
1044
+ value: number;
1045
+ readonly type: BuiltInType.Byte;
1046
+ };
1047
+ declare const uaByte: (value: number) => UaByte;
1048
+ type UaInt16 = {
1049
+ value: number;
1050
+ readonly type: BuiltInType.Int16;
1051
+ };
1052
+ declare const uaInt16: (value: number) => UaInt16;
1053
+ type UaUint16 = {
1054
+ value: number;
1055
+ readonly type: BuiltInType.UInt16;
1056
+ };
1057
+ declare const uaUint16: (value: number) => UaUint16;
1058
+ type UaInt32 = {
1059
+ value: number;
1060
+ readonly type: BuiltInType.Int32;
1061
+ };
1062
+ declare const uaInt32: (value: number) => UaInt32;
1063
+ type UaUint32 = {
1064
+ value: number;
1065
+ readonly type: BuiltInType.UInt32;
1066
+ };
1067
+ declare const uaUint32: (value: number) => UaUint32;
1068
+ type UaInt64 = {
1069
+ value: bigint;
1070
+ readonly type: BuiltInType.Int64;
1071
+ };
1072
+ declare const uaInt64: (value: bigint) => UaInt64;
1073
+ type UaUint64 = {
1074
+ value: bigint;
1075
+ readonly type: BuiltInType.UInt64;
1076
+ };
1077
+ declare const uaUint64: (value: bigint) => UaUint64;
1078
+ type UaFloat = {
1079
+ value: number;
1080
+ readonly type: BuiltInType.Float;
1081
+ };
1082
+ declare const uaFloat: (value: number) => UaFloat;
1083
+ type UaDouble = {
1084
+ value: number;
1085
+ readonly type: BuiltInType.Double;
1086
+ };
1087
+ declare const uaDouble: (value: number) => UaDouble;
1088
+ /**
1089
+ * OPC UA String primitive type.
1090
+ *
1091
+ * A String in OPC UA can be null (encoded as length -1 in binary).
1092
+ * Using `string | null` instead of `string | undefined` aligns with the
1093
+ * OPC UA specification where null is an explicit, valid value distinct
1094
+ * from an empty string. Same is true for ByteString which can be null (length -1)
1095
+ * or a Uint8Array.
1096
+ */
1097
+ type UaString = string | null;
1098
+ type UaByteString = Uint8Array | null;
1099
+ type UaGuid = {
1100
+ value: string;
1101
+ readonly type: BuiltInType.Guid;
1102
+ };
1103
+ declare const uaGuid: (value: string) => UaGuid;
1104
+ type UaDateTime = Date;
1105
+ /**
1106
+ * Union of all OPC UA primitive types accepted by {@link Variant.newFrom}.
1107
+ */
1108
+ type UaPrimitive = UaBoolean | UaSbyte | UaByte | UaInt16 | UaUint16 | UaInt32 | UaUint32 | UaInt64 | UaUint64 | UaFloat | UaDouble | UaString | UaDateTime | UaGuid | UaByteString;
1109
+
928
1110
  /**
929
1111
  * OPC UA Variant Type (i=24)
930
1112
  *
@@ -934,41 +1116,10 @@ declare class DiagnosticInfo {
934
1116
  * @see OPC UA Part 6, Section 5.1.2
935
1117
  */
936
1118
 
937
- /**
938
- * Enumeration of variant types based on BuiltinType NodeIds.
939
- */
940
- declare enum VariantType {
941
- Null = 0,
942
- Boolean = 1,
943
- SByte = 2,
944
- Byte = 3,
945
- Int16 = 4,
946
- UInt16 = 5,
947
- Int32 = 6,
948
- UInt32 = 7,
949
- Int64 = 8,
950
- UInt64 = 9,
951
- Float = 10,
952
- Double = 11,
953
- String = 12,
954
- DateTime = 13,
955
- Guid = 14,
956
- ByteString = 15,
957
- XmlElement = 16,
958
- NodeId = 17,
959
- ExpandedNodeId = 18,
960
- StatusCode = 19,
961
- QualifiedName = 20,
962
- LocalizedText = 21,
963
- ExtensionObject = 22,
964
- DataValue = 23,
965
- Variant = 24,
966
- DiagnosticInfo = 25
967
- }
968
1119
  /**
969
1120
  * Type union representing all possible variant values.
970
1121
  */
971
- type VariantValue = undefined | boolean | number | bigint | string | Date | Uint8Array | NodeId | ExpandedNodeId | QualifiedName | LocalizedText | Uint8Array | XmlElement | ExtensionObject | DataValue | StatusCode | DiagnosticInfo | Variant;
1122
+ type VariantValue = null | undefined | boolean | number | bigint | string | Date | Uint8Array | NodeId | ExpandedNodeId | QualifiedName | LocalizedText | XmlElement | ExtensionObject | DataValue | StatusCode | DiagnosticInfo | Variant;
972
1123
  /**
973
1124
  * Type for variant arrays.
974
1125
  */
@@ -997,7 +1148,7 @@ declare class Variant {
997
1148
  /**
998
1149
  * The variant type identifier.
999
1150
  */
1000
- readonly variantType: VariantType;
1151
+ readonly type: BuiltInType;
1001
1152
  /**
1002
1153
  * The variant value (scalar or array).
1003
1154
  */
@@ -1008,20 +1159,6 @@ declare class Variant {
1008
1159
  * For 2D arrays, this is [rows, cols], etc.
1009
1160
  */
1010
1161
  readonly arrayDimensions: number[] | undefined;
1011
- /**
1012
- * Creates a new Variant.
1013
- *
1014
- * @param variantType - The type of value stored in the variant
1015
- * @param value - The scalar or array value
1016
- * @param arrayDimensions - Optional array dimensions for structured arrays
1017
- */
1018
- constructor(variantType?: VariantType, value?: VariantValue | VariantArrayValue, arrayDimensions?: number[] | undefined);
1019
- /**
1020
- * Creates a undefined variant.
1021
- *
1022
- * @returns A new Variant with undefined value
1023
- */
1024
- static createNull(): Variant;
1025
1162
  /**
1026
1163
  * Checks if this variant is null.
1027
1164
  *
@@ -1059,6 +1196,45 @@ declare class Variant {
1059
1196
  * @returns A string representation of the variant
1060
1197
  */
1061
1198
  toString(): string;
1199
+ /**
1200
+ * Creates a {@link Variant} from any OPC UA built-in scalar value or a
1201
+ * homogeneous array of such values.
1202
+ *
1203
+ * **Scalar usage** — pass any concrete OPC UA type and the BuiltInType is
1204
+ * inferred automatically:
1205
+ * ```ts
1206
+ * Variant.newFrom('hello') // String
1207
+ * Variant.newFrom(uaDouble(3.14)) // Double
1208
+ * Variant.newFrom(new LocalizedText('en', 'Hi'))
1209
+ * ```
1210
+ *
1211
+ * **Array usage** — pass a plain JS array of a single homogeneous element type:
1212
+ * ```ts
1213
+ * Variant.newFrom([uaDouble(1.0), uaDouble(2.0)]) // Double[]
1214
+ * Variant.newFrom([new LocalizedText('en', 'A'), ...]) // LocalizedText[]
1215
+ * ```
1216
+ *
1217
+ * Throws if the array is empty (element type cannot be inferred), if the
1218
+ * first element is null/undefined, or if elements have mixed types.
1219
+ *
1220
+ * Note: `Variant` itself is excluded from the accepted types intentionally —
1221
+ * callers should work with concrete OPC UA types.
1222
+ */
1223
+ static newFrom(value: UaPrimitive | NodeId | ExpandedNodeId | QualifiedName | LocalizedText | XmlElement | ExtensionObject | DataValue | DiagnosticInfo | null | undefined | UaPrimitive[] | NodeId[] | ExpandedNodeId[] | QualifiedName[] | LocalizedText[] | XmlElement[] | ExtensionObject[] | DataValue[] | DiagnosticInfo[]): Variant;
1224
+ /**
1225
+ * Creates a undefined variant.
1226
+ *
1227
+ * @returns A new Variant with undefined value
1228
+ */
1229
+ static newNull(): Variant;
1230
+ /**
1231
+ * Creates a new Variant.
1232
+ *
1233
+ * @param variantType - The type of value stored in the variant
1234
+ * @param value - The scalar or array value
1235
+ * @param arrayDimensions - Optional array dimensions for structured arrays
1236
+ */
1237
+ constructor(variantType?: BuiltInType, value?: VariantValue | VariantArrayValue, arrayDimensions?: number[] | undefined);
1062
1238
  }
1063
1239
 
1064
1240
  /**
@@ -1192,130 +1368,12 @@ declare class Decoder {
1192
1368
  private encodingIdMap;
1193
1369
  registerReaderFactory(writerId: string, factory: (data: unknown) => IReader): void;
1194
1370
  registerEncodingId(encodingId: number, writerId: string, typeId: number): void;
1195
- registerType<T>(typeId: number, decoder: (decoder: IReader) => unknown): void;
1371
+ registerType(typeId: number, decoder: (decoder: IReader) => unknown): void;
1196
1372
  decode<T extends IOpcType>(data: unknown, encodingType: string): T;
1197
1373
  decodeWithEncodingId<T extends IOpcType>(encodingId: number, reader: IReader): T;
1198
1374
  decodeWithTypeId<T extends IOpcType>(typeId: number, reader: IReader): T;
1199
1375
  }
1200
1376
 
1201
- /**
1202
- * OPC UA Primitive Type Mappings
1203
- *
1204
- * Defines TypeScript type mappings for OPC UA primitive types.
1205
- * Primitives map directly to native TypeScript types without wrapper classes.
1206
- *
1207
- * @module primitives
1208
- */
1209
- /**
1210
- * OPC UA Builtin Type Numeric IDs
1211
- *
1212
- * These correspond to the NodeId numeric identifiers defined in OPC UA Part 6, Table 1.
1213
- */
1214
- declare const BuiltinTypeId: {
1215
- readonly Boolean: 1;
1216
- readonly SByte: 2;
1217
- readonly Byte: 3;
1218
- readonly Int16: 4;
1219
- readonly UInt16: 5;
1220
- readonly Int32: 6;
1221
- readonly UInt32: 7;
1222
- readonly Int64: 8;
1223
- readonly UInt64: 9;
1224
- readonly Float: 10;
1225
- readonly Double: 11;
1226
- readonly String: 12;
1227
- readonly DateTime: 13;
1228
- readonly Guid: 14;
1229
- readonly ByteString: 15;
1230
- readonly XmlElement: 16;
1231
- readonly NodeId: 17;
1232
- readonly ExpandedNodeId: 18;
1233
- readonly StatusCode: 19;
1234
- readonly QualifiedName: 20;
1235
- readonly LocalizedText: 21;
1236
- readonly ExtensionObject: 22;
1237
- readonly DataValue: 23;
1238
- readonly Variant: 24;
1239
- readonly DiagnosticInfo: 25;
1240
- };
1241
- /**
1242
- * Type representing any builtin type ID
1243
- */
1244
- type BuiltinTypeIdValue = typeof BuiltinTypeId[keyof typeof BuiltinTypeId];
1245
- /**
1246
- * OPC UA String primitive type.
1247
- *
1248
- * A String in OPC UA can be null (encoded as length -1 in binary).
1249
- * Using `string | null` instead of `string | undefined` aligns with the
1250
- * OPC UA specification where null is an explicit, valid value distinct
1251
- * from an empty string.
1252
- */
1253
- type UaString = string | null;
1254
- /**
1255
- * OPC UA ByteString primitive type.
1256
- *
1257
- * A ByteString in OPC UA can be null (encoded as length -1 in binary).
1258
- * Using `Uint8Array | null` instead of `Uint8Array | undefined` aligns
1259
- * with the OPC UA specification where null is an explicit, valid value
1260
- * distinct from an empty byte array.
1261
- */
1262
- type UaByteString = Uint8Array | null;
1263
- /**
1264
- * Primitive type mappings: OPC UA type → TypeScript type
1265
- *
1266
- * Primitives use native TypeScript types directly:
1267
- * - Boolean → boolean
1268
- * - All numeric types → number (TypeScript doesn't distinguish integer types)
1269
- * - String → string
1270
- * - DateTime → Date
1271
- * - Guid → string (UUID format)
1272
- */
1273
- type PrimitiveTypeMap = {
1274
- [BuiltinTypeId.Boolean]: boolean;
1275
- [BuiltinTypeId.SByte]: number;
1276
- [BuiltinTypeId.Byte]: number;
1277
- [BuiltinTypeId.Int16]: number;
1278
- [BuiltinTypeId.UInt16]: number;
1279
- [BuiltinTypeId.Int32]: number;
1280
- [BuiltinTypeId.UInt32]: number;
1281
- [BuiltinTypeId.Int64]: bigint;
1282
- [BuiltinTypeId.UInt64]: bigint;
1283
- [BuiltinTypeId.Float]: number;
1284
- [BuiltinTypeId.Double]: number;
1285
- [BuiltinTypeId.String]: UaString;
1286
- [BuiltinTypeId.DateTime]: Date;
1287
- [BuiltinTypeId.Guid]: string;
1288
- [BuiltinTypeId.ByteString]: UaByteString;
1289
- };
1290
- /**
1291
- * Get the TypeScript type name for a primitive builtin type
1292
- *
1293
- * @param typeId - The numeric builtin type ID
1294
- * @returns The TypeScript type name as a string, or undefined if not a primitive
1295
- *
1296
- * @example
1297
- * ```typescript
1298
- * getPrimitiveTypeName(1); // "boolean"
1299
- * getPrimitiveTypeName(6); // "number"
1300
- * getPrimitiveTypeName(12); // "string"
1301
- * getPrimitiveTypeName(17); // undefined (NodeId is complex, not primitive)
1302
- * ```
1303
- */
1304
- declare function getPrimitiveTypeName(typeId: number): string | undefined;
1305
- /**
1306
- * Check if a builtin type ID represents a primitive type
1307
- *
1308
- * @param typeId - The numeric builtin type ID
1309
- * @returns true if the type is primitive, false otherwise
1310
- *
1311
- * @example
1312
- * ```typescript
1313
- * isPrimitive(1); // true (Boolean)
1314
- * isPrimitive(17); // false (NodeId is complex)
1315
- * ```
1316
- */
1317
- declare function isPrimitive(typeId: number): boolean;
1318
-
1319
1377
  /**
1320
1378
  * @fileoverview Decoder interface for OPC UA data decoding
1321
1379
  * @module codec/interfaces/decoder
@@ -1401,7 +1459,7 @@ interface IReader {
1401
1459
  * Binary: Int32 length prefix + UTF-8 bytes (-1 indicates null)
1402
1460
  * @returns The string value, or null if the length prefix is -1 (OPC UA null)
1403
1461
  */
1404
- readString(): UaString;
1462
+ readString(): string | null;
1405
1463
  /**
1406
1464
  * Decode a DateTime value.
1407
1465
  * Binary: Int64 representing 100-nanosecond intervals since January 1, 1601 UTC
@@ -1488,7 +1546,7 @@ declare class Encoder {
1488
1546
  private encoders;
1489
1547
  private writerFactories;
1490
1548
  registerWriterFactory(writerId: string, factory: () => IWriter): void;
1491
- registerType<T>(typeId: number, encoder: (encoder: IWriter, value: any) => void): void;
1549
+ registerType(typeId: number, encoder: (encoder: IWriter, value: unknown) => void): void;
1492
1550
  encode<T extends IOpcType>(value: T, encodingType: string): unknown;
1493
1551
  encodeWithoutId<T extends IOpcType>(value: T, encodingType: string): unknown;
1494
1552
  }
@@ -1579,7 +1637,7 @@ interface IWriter {
1579
1637
  * Binary: Int32 length prefix + UTF-8 bytes
1580
1638
  * @param value The string value; null or undefined is encoded as length -1 (OPC UA null)
1581
1639
  */
1582
- writeString(value: UaString): void;
1640
+ writeString(value: string | null): void;
1583
1641
  /**
1584
1642
  * Encode a DateTime value.
1585
1643
  * Binary: Int64 representing 100-nanosecond intervals since January 1, 1601 UTC
@@ -1597,13 +1655,13 @@ interface IWriter {
1597
1655
  * Binary: Int32 length prefix + bytes
1598
1656
  * @param value The byte array; null or undefined is encoded as length -1 (OPC UA null)
1599
1657
  */
1600
- writeByteString(value: Buffer | Uint8Array | null | undefined): void;
1658
+ writeByteString(value: Uint8Array | null | undefined): void;
1601
1659
  /**
1602
1660
  * Encode an XmlElement value.
1603
1661
  * Binary: Int32 length prefix + UTF-8 encoded XML
1604
1662
  * @param value The XML string (undefined encoded as length -1)
1605
1663
  */
1606
- writeXmlElement(value: string): void;
1664
+ writeXmlElement(value: XmlElement | string): void;
1607
1665
  /**
1608
1666
  * Encode an array with Int32 length prefix.
1609
1667
  * Binary: Int32 length where -1=undefined, 0=empty, positive=count
@@ -1696,7 +1754,7 @@ declare class BinaryReader implements IReader {
1696
1754
  readUInt64(): bigint;
1697
1755
  readFloat(): number;
1698
1756
  readDouble(): number;
1699
- readString(): UaString;
1757
+ readString(): string | null;
1700
1758
  readDateTime(): Date;
1701
1759
  readGuid(): string;
1702
1760
  readByteString(): Uint8Array | null;
@@ -1758,11 +1816,6 @@ declare class BinaryReader implements IReader {
1758
1816
  * @see OPC 10000-6 Table 24
1759
1817
  */
1760
1818
  readDiagnosticInfo(): DiagnosticInfo;
1761
- /**
1762
- * Decode a NodeId with optional flag masking (used internally by readExpandedNodeId).
1763
- */
1764
- private readNodeIdWithMask;
1765
- private readVariantValue;
1766
1819
  getPosition(): number;
1767
1820
  /**
1768
1821
  * Read all remaining bytes from the current position to the end of the buffer.
@@ -1830,11 +1883,11 @@ declare class BinaryWriter implements IWriter {
1830
1883
  writeUInt64(value: bigint): void;
1831
1884
  writeFloat(value: number): void;
1832
1885
  writeDouble(value: number): void;
1833
- writeString(value: UaString): void;
1886
+ writeString(value: string | null): void;
1834
1887
  writeDateTime(value: Date): void;
1835
1888
  writeGuid(value: string): void;
1836
1889
  writeByteString(value: Uint8Array | null | undefined): void;
1837
- writeXmlElement(value: string): void;
1890
+ writeXmlElement(value: XmlElement | string): void;
1838
1891
  /**
1839
1892
  * Write an array with Int32 length prefix.
1840
1893
  * Per FR-011: -1 = null, 0 = empty, positive = element count
@@ -1892,18 +1945,91 @@ declare class BinaryWriter implements IWriter {
1892
1945
  * @see OPC 10000-6 Table 24
1893
1946
  */
1894
1947
  writeDiagnosticInfo(value: DiagnosticInfo): void;
1895
- private writeVariantValue;
1896
1948
  constructor(initialSize?: number);
1897
1949
  }
1898
1950
 
1899
- declare abstract class Configuration {
1900
- applicationName: string;
1901
- applicationUri: string;
1902
- productName: string;
1903
- productUri: string;
1904
- encoder: Encoder;
1905
- decoder: Decoder;
1906
- constructor(applicationName: string, applicationUri: string, productName: string, productUri: string, encoder: Encoder, decoder: Decoder);
1951
+ interface IEncryptionAlgorithm {
1952
+ IsAuthenticated(): boolean;
1953
+ GetMaxPayload(maxCipherTextSize: number): number;
1954
+ GetEncryptedSize(dataSize: number): number;
1955
+ GetPadding(bytesToWrite: number): Uint8Array;
1956
+ HasPadding(): boolean;
1957
+ Encrypt(cleartext: Uint8Array): Uint8Array;
1958
+ Decrypt(ciphertext: Uint8Array): Uint8Array;
1959
+ CalculateSignature(message: Uint8Array): Uint8Array;
1960
+ VerifySignature(message: Uint8Array, signature: Uint8Array): boolean;
1961
+ GetSignatureLength(): number;
1962
+ SignatureUri(): string;
1963
+ }
1964
+
1965
+ type MsgType = number;
1966
+
1967
+ declare class MsgHeader$1 {
1968
+ msgType: MsgType;
1969
+ messageSize: number;
1970
+ secureChannelId: number;
1971
+ static Size: number;
1972
+ static decode(buffer: BinaryReader): MsgHeader$1;
1973
+ encode(buffer: BinaryWriter): void;
1974
+ constructor(msgType: MsgType, messageSize: number, secureChannelId: number);
1975
+ }
1976
+
1977
+ declare class MsgSequenceHeader {
1978
+ sequenceNumber: number;
1979
+ requestId: number;
1980
+ static Size: number;
1981
+ static decode(buffer: BinaryReader): MsgSequenceHeader;
1982
+ encode(buffer: BinaryWriter): void;
1983
+ constructor(sequenceNumber: number, requestId: number);
1984
+ }
1985
+
1986
+ declare abstract class MsgBase$1 {
1987
+ header: MsgHeader$1;
1988
+ sequenceHeader: MsgSequenceHeader;
1989
+ body: unknown;
1990
+ static DecryptAndVerify(data: Uint8Array, encryptionAlgorithm: IEncryptionAlgorithm, headerLength: number): Uint8Array;
1991
+ protected Encrypt(buffer: BinaryWriter, encryptionAlgorithm: IEncryptionAlgorithm, headerSize: number, paddingPosition: number): Uint8Array;
1992
+ abstract encode(buffer: BinaryWriter, encryptionAlgorithm: IEncryptionAlgorithm): void;
1993
+ constructor(header: MsgHeader$1, sequenceHeader: MsgSequenceHeader, body: unknown);
1994
+ }
1995
+
1996
+ /**
1997
+ * TransformStream that binary-encodes each {@link IOpcType} chunk into a
1998
+ * {@link Uint8Array} using the supplied {@link Encoder}.
1999
+ *
2000
+ * Use this to separate the OPC UA service-encoding step from the secure-channel
2001
+ * framing step, keeping each stage composable:
2002
+ *
2003
+ * ```ts
2004
+ * requestStream
2005
+ * .pipeThrough(new SecureChannelTypeEncoder(config.encoder))
2006
+ * .pipeThrough(new SecureChannelFramingTransform(context))
2007
+ * .pipeTo(wsSendable);
2008
+ * ```
2009
+ */
2010
+ declare class SecureChannelTypeEncoder extends TransformStream<MsgBase$1, MsgBase$1> {
2011
+ constructor(encoder: Encoder);
2012
+ }
2013
+
2014
+ /**
2015
+ * TransformStream that binary-decodes each raw-body {@link Uint8Array} into
2016
+ * the corresponding {@link IOpcType} using the supplied {@link Decoder}.
2017
+ *
2018
+ * Abort messages (MSG+A) carry a transport-level StatusCode+Reason payload,
2019
+ * not an OPC UA service response, so their bodies are passed through as-is
2020
+ * for the {@link SecureChannelFacade} to decode and report.
2021
+ *
2022
+ * Use this to separate the OPC UA service-decoding step from the secure-channel
2023
+ * framing step, keeping each stage composable:
2024
+ *
2025
+ * ```ts
2026
+ * bodyBytesReadable
2027
+ * .pipeThrough(new BinaryDecoderTransform(config.decoder))
2028
+ * .pipeTo(responseHandler.writable);
2029
+ * ```
2030
+ */
2031
+ declare class SecureChannelTypeDecoder extends TransformStream<MsgBase$1, MsgBase$1> {
2032
+ constructor(decoder: Decoder);
1907
2033
  }
1908
2034
 
1909
2035
  /**
@@ -1912,7 +2038,7 @@ declare abstract class Configuration {
1912
2038
  * This file was automatically generated from OPC UA NodeSet2 XML.
1913
2039
  *
1914
2040
  * Source: Opc.Ua.NodeSet2.Services.xml
1915
- * Generated: 2026-02-27T12:42:09.143Z
2041
+ * Generated: 2026-03-16T04:16:36.493Z
1916
2042
  * Generator: @opcua/nodeset-generator
1917
2043
  *
1918
2044
  * Any changes made to this file will be lost when regenerated.
@@ -2489,15 +2615,6 @@ declare enum UserTokenTypeEnum {
2489
2615
  IssuedToken = 3
2490
2616
  }
2491
2617
 
2492
- interface ITransportChannel {
2493
- connect(): Promise<boolean>;
2494
- disconnect(): void;
2495
- send(data: Uint8Array): Promise<void>;
2496
- onMessage?: (data: Uint8Array) => void;
2497
- getEndpointUrl(): string;
2498
- getCodecType(): string;
2499
- }
2500
-
2501
2618
  interface ISecureChannel {
2502
2619
  getSecurityPolicy(): string;
2503
2620
  getSecurityMode(): MessageSecurityModeEnum;
@@ -2505,29 +2622,28 @@ interface ISecureChannel {
2505
2622
  issueServiceRequest(request: IOpcType): Promise<IOpcType>;
2506
2623
  }
2507
2624
 
2508
- declare class SecureChannel implements ISecureChannel {
2509
- private channel;
2510
- private configuration;
2511
- private sequenceNumber;
2512
- private requestNumber;
2513
- private securityPolicy;
2514
- private resolvers;
2515
- private id;
2516
- private token;
2517
- private chunkBuffers;
2518
- openSecureChannelRequest(): Promise<void>;
2519
- disconnect(): Promise<void>;
2520
- getSecurityPolicy(): string;
2521
- getSecurityMode(): MessageSecurityModeEnum;
2522
- getEndpointUrl(): string;
2523
- issueServiceRequest(request: IOpcType): Promise<IOpcType>;
2524
- private onMessage;
2525
- private onReceivedMessage;
2526
- constructor(channel: ITransportChannel, configuration: Configuration);
2625
+ interface ILogger {
2626
+ trace(msg: string | (() => string), ...args: unknown[]): void;
2627
+ debug(msg: string | (() => string), ...args: unknown[]): void;
2628
+ info(msg: string | (() => string), ...args: unknown[]): void;
2629
+ warn(msg: string | (() => string), ...args: unknown[]): void;
2630
+ error(msg: string | (() => string), ...args: unknown[]): void;
2631
+ fatal(msg: string | (() => string), ...args: unknown[]): void;
2527
2632
  }
2528
2633
 
2529
- declare class ChannelFactory {
2530
- static createChannel(endpointUrl: string): ITransportChannel;
2634
+ interface ILoggerFactory {
2635
+ getLogger(category: string): ILogger;
2636
+ }
2637
+
2638
+ declare abstract class Configuration {
2639
+ applicationName: string;
2640
+ applicationUri: string;
2641
+ productName: string;
2642
+ productUri: string;
2643
+ encoder: Encoder;
2644
+ decoder: Decoder;
2645
+ loggerFactory: ILoggerFactory;
2646
+ constructor(applicationName: string, applicationUri: string, productName: string, productUri: string, encoder: Encoder, decoder: Decoder, loggerFactory: ILoggerFactory);
2531
2647
  }
2532
2648
 
2533
2649
  /**
@@ -2536,7 +2652,7 @@ declare class ChannelFactory {
2536
2652
  * This file was automatically generated from OPC UA NodeSet2 XML.
2537
2653
  *
2538
2654
  * Source: Opc.Ua.NodeSet2.Services.xml
2539
- * Generated: 2026-02-27T12:42:09.143Z
2655
+ * Generated: 2026-03-16T04:16:36.493Z
2540
2656
  * Generator: @opcua/nodeset-generator
2541
2657
  *
2542
2658
  * Any changes made to this file will be lost when regenerated.
@@ -2550,7 +2666,7 @@ declare function registerEncoders(encoder: Encoder): void;
2550
2666
  * This file was automatically generated from OPC UA NodeSet2 XML.
2551
2667
  *
2552
2668
  * Source: Opc.Ua.NodeSet2.Services.xml
2553
- * Generated: 2026-02-27T12:42:09.143Z
2669
+ * Generated: 2026-03-16T04:16:36.493Z
2554
2670
  * Generator: @opcua/nodeset-generator
2555
2671
  *
2556
2672
  * Any changes made to this file will be lost when regenerated.
@@ -2567,7 +2683,7 @@ declare function registerXmlDecoders(decoder: Decoder): void;
2567
2683
  * This file was automatically generated from OPC UA NodeSet2 XML.
2568
2684
  *
2569
2685
  * Source: Opc.Ua.NodeSet2.Services.xml
2570
- * Generated: 2026-02-27T12:42:09.143Z
2686
+ * Generated: 2026-03-16T04:16:36.493Z
2571
2687
  * Generator: @opcua/nodeset-generator
2572
2688
  *
2573
2689
  * Any changes made to this file will be lost when regenerated.
@@ -4438,7 +4554,7 @@ declare class ReferenceListEntryDataType extends Structure implements IOpcType {
4438
4554
  * NodeId: i=19361
4439
4555
  * Extends: Structure
4440
4556
  */
4441
- declare class LogRecord extends Structure implements IOpcType {
4557
+ declare class LogRecord$1 extends Structure implements IOpcType {
4442
4558
  time: Date;
4443
4559
  severity: number;
4444
4560
  eventType?: NodeId | null;
@@ -4458,7 +4574,7 @@ declare class LogRecord extends Structure implements IOpcType {
4458
4574
  * Extends: Structure
4459
4575
  */
4460
4576
  declare class LogRecordsDataType extends Structure implements IOpcType {
4461
- logRecordArray: LogRecord[];
4577
+ logRecordArray: LogRecord$1[];
4462
4578
  getTypeId(): number;
4463
4579
  getBinaryEncodingId(): number;
4464
4580
  getXmlEncodingId(): number;
@@ -7897,4 +8013,319 @@ declare class Annotation extends Structure implements IOpcType {
7897
8013
  getJsonEncodingId(): number;
7898
8014
  }
7899
8015
 
7900
- export { ActionMethodDataType, ActionStateEnum, ActionTargetDataType, ActivateSessionRequest, ActivateSessionResponse, AddNodesItem, AddNodesRequest, AddNodesResponse, AddNodesResult, AddReferencesItem, AddReferencesRequest, AddReferencesResponse, AdditionalParametersType, AggregateConfiguration, AggregateFilter, AggregateFilterResult, AliasNameDataType, Annotation, AnnotationDataType, AnonymousIdentityToken, ApplicationConfigurationDataType, ApplicationDescription, ApplicationIdentityDataType, ApplicationTypeEnum, Argument, AttributeOperand, AuthorizationServiceConfigurationDataType, AxisInformation, AxisScaleEnumerationEnum, BaseConfigurationDataType, BaseConfigurationRecordDataType, BinaryReader, BinaryWriter, BitFieldDefinition, BrokerConnectionTransportDataType, BrokerDataSetReaderTransportDataType, BrokerDataSetWriterTransportDataType, BrokerTransportQualityOfServiceEnum, BrokerWriterGroupTransportDataType, BrowseDescription, BrowseDirectionEnum, BrowseNextRequest, BrowseNextResponse, BrowsePath, BrowsePathResult, BrowsePathTarget, BrowseRequest, BrowseResponse, BrowseResult, BrowseResultMaskEnum, BuildInfo, BuiltinTypeId, type BuiltinTypeIdValue, CallMethodRequest, CallMethodResult, CallRequest, CallResponse, CancelRequest, CancelResponse, CartesianCoordinates, CertificateGroupDataType, ChannelFactory, ChannelSecurityToken, ChassisIdSubtypeEnum, CloseSecureChannelRequest, CloseSecureChannelResponse, CloseSessionRequest, CloseSessionResponse, ComplexNumberType, Configuration, ConfigurationUpdateTargetType, ConfigurationUpdateTypeEnum, ConfigurationVersionDataType, ConnectionTransportDataType, ContentFilter, ContentFilterElement, ContentFilterElementResult, ContentFilterResult, ConversionLimitEnumEnum, CreateMonitoredItemsRequest, CreateMonitoredItemsResponse, CreateSessionRequest, CreateSessionResponse, CreateSubscriptionRequest, CreateSubscriptionResponse, CurrencyUnitType, DataChangeFilter, DataChangeNotification, DataChangeTriggerEnum, DataSetMetaDataType, DataSetOrderingTypeEnum, DataSetReaderDataType, DataSetReaderMessageDataType, DataSetReaderTransportDataType, DataSetWriterDataType, DataSetWriterMessageDataType, DataSetWriterTransportDataType, DataTypeAttributes, DataTypeDefinition, DataTypeDescription, DataTypeNode, DataTypeSchemaHeader, DataValue, DatagramConnectionTransport2DataType, DatagramConnectionTransportDataType, DatagramDataSetReaderTransportDataType, DatagramWriterGroupTransport2DataType, DatagramWriterGroupTransportDataType, DeadbandTypeEnum, DecimalDataType, Decoder, DeleteAtTimeDetails, DeleteEventDetails, DeleteMonitoredItemsRequest, DeleteMonitoredItemsResponse, DeleteNodesItem, DeleteNodesRequest, DeleteNodesResponse, DeleteRawModifiedDetails, DeleteReferencesItem, DeleteReferencesRequest, DeleteReferencesResponse, DeleteSubscriptionsRequest, DeleteSubscriptionsResponse, DiagnosticInfo, DiagnosticsLevelEnum, DiscoveryConfiguration, DoubleComplexNumberType, DtlsPubSubConnectionDataType, DuplexEnum, EUInformation, ElementOperand, Encoder, EndpointConfiguration, EndpointDataType, EndpointDescription, EndpointType, EndpointUrlListDataType, EnumDefinition, EnumDescription, EnumField, EnumValueType, EphemeralKeyType, EventFieldList, EventFilter, EventFilterResult, EventNotificationList, ExceptionDeviationFormatEnum, ExpandedNodeId, ExtensionObject, FieldMetaData, FieldTargetDataType, FilterOperand, FilterOperatorEnum, FindServersOnNetworkRequest, FindServersOnNetworkResponse, FindServersRequest, FindServersResponse, Frame, GenericAttributeValue, GenericAttributes, GetEndpointsRequest, GetEndpointsResponse, HistoryData, HistoryEvent, HistoryEventFieldList, HistoryModifiedData, HistoryModifiedEvent, HistoryReadDetails, HistoryReadRequest, HistoryReadResponse, HistoryReadResult, HistoryReadValueId, HistoryUpdateDetails, HistoryUpdateRequest, HistoryUpdateResponse, HistoryUpdateResult, HistoryUpdateTypeEnum, type IOpcType, type IReader, type ISecureChannel, type IWriter, IdTypeEnum, IdentityCriteriaTypeEnum, IdentityMappingRuleType, InstanceNode, InterfaceAdminStatusEnum, InterfaceOperStatusEnum, IssuedIdentityToken, JsonActionMetaDataMessage, JsonActionNetworkMessage, JsonActionRequestMessage, JsonActionResponderMessage, JsonActionResponseMessage, JsonApplicationDescriptionMessage, JsonDataSetMessage, JsonDataSetMetaDataMessage, JsonDataSetReaderMessageDataType, JsonDataSetWriterMessageDataType, JsonNetworkMessage, JsonPubSubConnectionMessage, JsonServerEndpointsMessage, JsonStatusMessage, JsonWriterGroupMessageDataType, KeyValuePair, LinearConversionDataType, LiteralOperand, LldpManagementAddressTxPortType, LldpManagementAddressType, LldpTlvType, LocalizedText, LogRecord, LogRecordsDataType, ManAddrIfSubtypeEnum, MdnsDiscoveryConfiguration, MessageSecurityModeEnum, MethodAttributes, MethodNode, ModelChangeStructureDataType, ModelChangeStructureVerbMaskEnum, ModificationInfo, ModifyMonitoredItemsRequest, ModifyMonitoredItemsResponse, ModifySubscriptionRequest, ModifySubscriptionResponse, MonitoredItemCreateRequest, MonitoredItemCreateResult, MonitoredItemModifyRequest, MonitoredItemModifyResult, MonitoredItemNotification, MonitoringFilter, MonitoringFilterResult, MonitoringModeEnum, MonitoringParameters, NameValuePair, NamingRuleTypeEnum, NegotiationStatusEnum, NetworkAddressDataType, NetworkAddressUrlDataType, NetworkGroupDataType, Node, NodeAttributes, NodeAttributesMaskEnum, NodeClassEnum, NodeId, NodeIdType, NodeReference, NodeTypeDescription, NotificationData, NotificationMessage, ObjectAttributes, ObjectNode, ObjectTypeAttributes, ObjectTypeNode, OpenFileModeEnum, OpenSecureChannelRequest, OpenSecureChannelResponse, OptionSet, Orientation, OverrideValueHandlingEnum, ParsingResult, PerformUpdateTypeEnum, PortIdSubtypeEnum, PortableNodeId, PortableQualifiedName, type PrimitiveTypeMap, PriorityMappingEntryType, ProgramDiagnostic2DataType, ProgramDiagnosticDataType, PubSubConfiguration2DataType, PubSubConfigurationDataType, PubSubConfigurationRefDataType, PubSubConfigurationValueDataType, PubSubConnectionDataType, PubSubDiagnosticsCounterClassificationEnum, PubSubGroupDataType, PubSubKeyPushTargetDataType, PubSubStateEnum, PublishRequest, PublishResponse, PublishedActionDataType, PublishedActionMethodDataType, PublishedDataItemsDataType, PublishedDataSetCustomSourceDataType, PublishedDataSetDataType, PublishedDataSetSourceDataType, PublishedEventsDataType, PublishedVariableDataType, QosDataType, QualifiedName, QuantityDimension, QueryDataDescription, QueryDataSet, QueryFirstRequest, QueryFirstResponse, QueryNextRequest, QueryNextResponse, Range, RationalNumber, ReadAnnotationDataDetails, ReadAtTimeDetails, ReadEventDetails, ReadEventDetails2, ReadEventDetailsSorted, ReadProcessedDetails, ReadRawModifiedDetails, ReadRequest, ReadResponse, ReadValueId, ReaderGroupDataType, ReaderGroupMessageDataType, ReaderGroupTransportDataType, ReceiveQosDataType, ReceiveQosPriorityDataType, RedundancySupportEnum, RedundantServerDataType, RedundantServerModeEnum, ReferenceDescription, ReferenceDescriptionDataType, ReferenceListEntryDataType, ReferenceNode, ReferenceTypeAttributes, ReferenceTypeNode, RegisterNodesRequest, RegisterNodesResponse, RegisterServer2Request, RegisterServer2Response, RegisterServerRequest, RegisterServerResponse, RegisteredServer, RelativePath, RelativePathElement, RepublishRequest, RepublishResponse, RequestHeader, ResponseHeader, RolePermissionType, SamplingIntervalDiagnosticsDataType, SecureChannel, SecurityGroupDataType, SecuritySettingsDataType, SecurityTokenRequestTypeEnum, SemanticChangeStructureDataType, ServerDiagnosticsSummaryDataType, ServerEndpointDataType, ServerOnNetwork, ServerStateEnum, ServerStatusDataType, ServiceCertificateDataType, ServiceCounterDataType, ServiceFault, SessionDiagnosticsDataType, SessionSecurityDiagnosticsDataType, SessionlessInvokeRequestType, SessionlessInvokeResponseType, SetMonitoringModeRequest, SetMonitoringModeResponse, SetPublishingModeRequest, SetPublishingModeResponse, SetTriggeringRequest, SetTriggeringResponse, SignatureData, SignedSoftwareCertificate, SimpleAttributeOperand, SimpleTypeDescription, SortOrderTypeEnum, SortRuleElement, SpanContextDataType, StandaloneSubscribedDataSetDataType, StandaloneSubscribedDataSetRefDataType, StatusChangeNotification, StatusResult, Structure, StructureDefinition, StructureDescription, StructureField, StructureTypeEnum, SubscribedDataSetDataType, SubscribedDataSetMirrorDataType, SubscriptionAcknowledgement, SubscriptionDiagnosticsDataType, TargetVariablesDataType, TimeZoneDataType, TimestampsToReturnEnum, TraceContextDataType, TransactionErrorType, TransferResult, TransferSubscriptionsRequest, TransferSubscriptionsResponse, TranslateBrowsePathsToNodeIdsRequest, TranslateBrowsePathsToNodeIdsResponse, TransmitQosDataType, TransmitQosPriorityDataType, TrustListDataType, TrustListMasksEnum, TsnFailureCodeEnum, TsnListenerStatusEnum, TsnStreamStateEnum, TsnTalkerStatusEnum, TypeNode, UABinaryFileDataType, type UaByteString, type UaString, UadpDataSetReaderMessageDataType, UadpDataSetWriterMessageDataType, UadpWriterGroupMessageDataType, Union, UnregisterNodesRequest, UnregisterNodesResponse, UnsignedRationalNumber, UpdateDataDetails, UpdateEventDetails, UpdateStructureDataDetails, UserIdentityToken, UserManagementDataType, UserNameIdentityToken, UserTokenPolicy, UserTokenSettingsDataType, UserTokenTypeEnum, VariableAttributes, VariableNode, VariableTypeAttributes, VariableTypeNode, Variant, type VariantArrayValue, VariantType, type VariantValue, Vector, ViewAttributes, ViewDescription, ViewNode, WriteRequest, WriteResponse, WriteValue, WriterGroupDataType, WriterGroupMessageDataType, WriterGroupTransportDataType, X509IdentityToken, XVType, XmlElement, _3DCartesianCoordinates, _3DFrame, _3DOrientation, _3DVector, getPrimitiveTypeName, isPrimitive, registerBinaryDecoders, registerEncoders, registerJsonDecoders, registerTypeDecoders, registerXmlDecoders };
8016
+ type LevelName = "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR" | "FATAL" | "OFF";
8017
+
8018
+ interface LogRecord {
8019
+ time: Date;
8020
+ level: LevelName;
8021
+ levelValue: number;
8022
+ category: string;
8023
+ message: string;
8024
+ args: unknown[];
8025
+ }
8026
+
8027
+ interface ISink {
8028
+ log(record: LogRecord): void;
8029
+ }
8030
+
8031
+ interface LoggerConfig {
8032
+ defaultLevel: LevelName;
8033
+ categoryLevels?: Record<string, LevelName>;
8034
+ sink?: ISink;
8035
+ includeTimestamp?: boolean;
8036
+ }
8037
+
8038
+ declare class LoggerFactory implements ILoggerFactory {
8039
+ private config;
8040
+ private cache;
8041
+ constructor(config?: Partial<LoggerConfig>);
8042
+ getLogger(category: string): ILogger;
8043
+ setDefaultLevel(level: LevelName): void;
8044
+ setCategoryLevel(categoryOrPattern: string, level: LevelName): void;
8045
+ removeCategoryLevel(categoryOrPattern: string): void;
8046
+ setSink(sink: ISink): void;
8047
+ }
8048
+
8049
+ declare class ConsoleSink implements ISink {
8050
+ private opts;
8051
+ constructor(opts?: {
8052
+ includeTimestamp: boolean;
8053
+ });
8054
+ log(record: LogRecord): void;
8055
+ }
8056
+
8057
+ declare function getLogger(category: string): ILogger;
8058
+ declare function initLoggerProvider(provider: ILoggerFactory): void;
8059
+
8060
+ type WebSocketOptions = {
8061
+ endpoint: string;
8062
+ openTimeoutMs?: number;
8063
+ maxBufferedMessages?: number;
8064
+ };
8065
+ declare class WebSocketFascade {
8066
+ private options;
8067
+ private logger;
8068
+ private webSocket?;
8069
+ onMessageHandler: ((event: MessageEvent) => void) | null;
8070
+ onErrorHandler: ((event: Event) => void) | null;
8071
+ onCloseHandler: ((event: Event) => void) | null;
8072
+ connect(): Promise<void>;
8073
+ send(data: Uint8Array): void;
8074
+ close(): void;
8075
+ setOnMessage(handler: (event: MessageEvent) => void): void;
8076
+ setOnClose(handler: (event: Event) => void): void;
8077
+ setOnError(handler: (event: Event) => void): void;
8078
+ private describeCloseCode;
8079
+ constructor(options: WebSocketOptions);
8080
+ }
8081
+
8082
+ declare class WebSocketReadableStream extends ReadableStream<Uint8Array> {
8083
+ private readonly ws;
8084
+ private readonly maxBufferedMessages;
8085
+ private readonly logger;
8086
+ private buffer;
8087
+ private closed;
8088
+ private errored;
8089
+ private notifyPull;
8090
+ private bufferPush;
8091
+ private cleanup;
8092
+ private sourceOnPull;
8093
+ private sourceOnCancel;
8094
+ private wsOnMessage;
8095
+ constructor(ws: WebSocketFascade, maxBufferedMessages: number);
8096
+ }
8097
+
8098
+ declare class WebSocketWritableStream extends WritableStream<Uint8Array> {
8099
+ private ws;
8100
+ private logger;
8101
+ private sinkOnWrite;
8102
+ private sinkOnClose;
8103
+ private sinkOnAbort;
8104
+ constructor(ws: WebSocketFascade);
8105
+ }
8106
+
8107
+ declare class MsgHeader {
8108
+ messageType: number;
8109
+ messageSize: number;
8110
+ constructor(messageType: number, messageSize: number);
8111
+ static decode(buffer: IReader): MsgHeader;
8112
+ encode(buffer: IWriter): void;
8113
+ }
8114
+
8115
+ declare class MsgBase {
8116
+ header: MsgHeader;
8117
+ constructor(header: MsgHeader);
8118
+ }
8119
+
8120
+ declare class TcpMessageDecoupler extends TransformStream<Uint8Array, Uint8Array> {
8121
+ private onTcpMessage;
8122
+ private logger;
8123
+ private transform;
8124
+ constructor(onTcpMessage: (message: MsgBase) => void);
8125
+ }
8126
+
8127
+ declare class TcpMessageInjector extends TransformStream<Uint8Array, Uint8Array> {
8128
+ private logger;
8129
+ private controller;
8130
+ constructor();
8131
+ sendMessage(message: Uint8Array): void;
8132
+ }
8133
+
8134
+ interface ICertificate {
8135
+ getBytes(): Uint8Array;
8136
+ }
8137
+
8138
+ declare class SecurityPolicyNone {
8139
+ getSecurityMode(): MessageSecurityModeEnum;
8140
+ getSecurityPolicyUri(): string;
8141
+ getSecurityLevel(): number;
8142
+ getCertificate(): Uint8Array;
8143
+ createNonce(): Uint8Array;
8144
+ verifyNonce(nonce: Uint8Array): boolean;
8145
+ getAlgorithmSymmetric(localCertificate: ICertificate, remoteCertificate: ICertificate): IEncryptionAlgorithm;
8146
+ getAlgorithmAsymmetric(localNonce: Uint8Array, remoteNonce: Uint8Array): IEncryptionAlgorithm;
8147
+ }
8148
+
8149
+ /**
8150
+ * Shared mutable state for the OPC UA Secure Conversation layer.
8151
+ * Passed to both the chunk reader/writer and the secure channel facade so
8152
+ * they all operate on the same channel identity and sequence counters.
8153
+ */
8154
+ declare class SecureChannelContext {
8155
+ readonly endpointUrl: string;
8156
+ /**
8157
+ * Next outgoing sequence number. Starts at 1 for non-ECC legacy profiles
8158
+ * per OPC UA Part 6, Section 6.7.2.4. The value 0 is used only as the
8159
+ * LastSequenceNumber sentinel in the OPN request ("no prior sequence").
8160
+ */
8161
+ sequenceNumber: number;
8162
+ /** Next outgoing request ID. The value 0 is reserved and must be skipped. */
8163
+ requestId: number;
8164
+ channelId: number;
8165
+ tokenId: number;
8166
+ maxSendBufferSize: number;
8167
+ maxRecvBufferSize: number;
8168
+ /** Pending chunk bodies keyed by requestId, for reassembling multi-chunk messages. */
8169
+ chunkBuffers: Map<number, Uint8Array<ArrayBufferLike>[]>;
8170
+ securityAlgorithm?: IEncryptionAlgorithm;
8171
+ /** Last remote sequence number seen; undefined before the first received message. */
8172
+ lastRemoteSequenceNumber: number | undefined;
8173
+ readonly securityPolicy: SecurityPolicyNone;
8174
+ /**
8175
+ * Returns the current outgoing sequence number then advances it with
8176
+ * UInt32 wrap-around per OPC UA Part 6, Section 6.7.2.4. Only advances
8177
+ * the sequence counter — use when creating additional chunks for the same
8178
+ * message (each chunk needs its own sequence number but the same requestId).
8179
+ */
8180
+ nextSequenceNumber(): number;
8181
+ /**
8182
+ * Returns the next outgoing sequence number and request ID, then advances
8183
+ * both counters. Call once per outgoing message; use {@link nextSequenceNumber}
8184
+ * for additional chunks of the same message.
8185
+ *
8186
+ * Handles UInt32 wrap-around per OPC UA Part 6, Section 6.7.2.4:
8187
+ * sequence numbers reset to 1 after reaching 0xFFFFFFFF-1024; request IDs
8188
+ * skip the reserved value 0 on wrap.
8189
+ */
8190
+ nextIds(): {
8191
+ sequenceNumber: number;
8192
+ requestId: number;
8193
+ };
8194
+ constructor(endpointUrl: string);
8195
+ }
8196
+
8197
+ declare class TcpConnectionHandler {
8198
+ private injector;
8199
+ private context;
8200
+ private connectResolve?;
8201
+ private logger;
8202
+ private buf;
8203
+ /**
8204
+ * Sends the OPC UA Hello message over `wsSendable` and waits for the server
8205
+ * Acknowledge. The WebSocket readable **must** already be piped into
8206
+ * `this.writable` before calling this method.
8207
+ *
8208
+ * @param endpointUrl The OPC UA endpoint URL (e.g. `"opc.wss://host:4840/"`).
8209
+ * @param wsSendable The writable side of the WebSocket duplex, used for
8210
+ * sending the Hello frame.
8211
+ * @returns `true` on a successful Acknowledge, `false` on a server Error.
8212
+ */
8213
+ connect(endpointUrl: string): Promise<boolean>;
8214
+ onTcpMessage(msg: MsgBase): void;
8215
+ constructor(injector: TcpMessageInjector, context: SecureChannelContext);
8216
+ }
8217
+
8218
+ declare class SecureChannelFacade implements ISecureChannel {
8219
+ private readonly context;
8220
+ private readerTransform;
8221
+ private writerTransform;
8222
+ private readonly pending;
8223
+ private readonly logger;
8224
+ private readonly writer;
8225
+ private readonly reader;
8226
+ /** Timer handle for the scheduled token renewal; undefined when no renewal is pending. */
8227
+ private renewalTimer;
8228
+ /**
8229
+ * Builds and sends an OpenSecureChannel request.
8230
+ * Called for both the initial Issue and subsequent Renew requests.
8231
+ *
8232
+ * On success the context `channelId` and `tokenId` are updated and a new
8233
+ * renewal is scheduled at 75 % of the server-revised token lifetime, per
8234
+ * OPC UA Part 4 Section 5.4.1 / Part 6 Section 6.7.3.
8235
+ */
8236
+ private sendOpenSecureChannel;
8237
+ /**
8238
+ * Schedules a proactive token renewal at {@link TOKEN_RENEW_FRACTION} of
8239
+ * `lifetimeMs`. Any previously scheduled renewal is cancelled first.
8240
+ */
8241
+ private scheduleRenewal;
8242
+ /**
8243
+ * Sends the initial OpenSecureChannel request and resolves once the server
8244
+ * replies. Updates `context.channelId` and `context.tokenId` on success
8245
+ * and schedules automatic renewal at 75 % of the token lifetime.
8246
+ */
8247
+ openSecureChannel(): Promise<void>;
8248
+ /**
8249
+ * Cancels any pending token renewal timer and releases the stream writer.
8250
+ * Call this when the secure channel is no longer needed.
8251
+ */
8252
+ close(): void;
8253
+ getSecurityPolicy(): string;
8254
+ getSecurityMode(): MessageSecurityModeEnum;
8255
+ getEndpointUrl(): string;
8256
+ /**
8257
+ * Sends a service request and returns a Promise that resolves with the
8258
+ * matched response decoded by {@link SecureChannelReadable}.
8259
+ */
8260
+ issueServiceRequest(request: IOpcType): Promise<IOpcType>;
8261
+ private routeFrames;
8262
+ private pushMessage;
8263
+ constructor(context: SecureChannelContext, readerTransform: TransformStream<MsgBase$1, MsgBase$1>, writerTransform: TransformStream<MsgBase$1, MsgBase$1>);
8264
+ }
8265
+
8266
+ /**
8267
+ * Deframing transform for pipe use.
8268
+ *
8269
+ * Accepts raw OPC UA secure-conversation frame bytes, strips the message
8270
+ * framing, and emits decoded {@link MsgBase} objects.
8271
+ * Routing (pending request settlement vs. unsolicited) is the caller’s
8272
+ * responsibility — use {@link SecureChannelFacade} for that.
8273
+ *
8274
+ * ```ts
8275
+ * tcpReadable
8276
+ * .pipeThrough(new SecureChannelDeframingTransform(context))
8277
+ * .pipeTo(routerWritable);
8278
+ * ```
8279
+ */
8280
+ declare class SecureChannelMessageDecoder extends TransformStream<Uint8Array, MsgBase$1> {
8281
+ private context;
8282
+ private logger;
8283
+ /**
8284
+ * Validates that `sequenceNumber` is monotonically increasing from the
8285
+ * highest seen remote sequence. Allows UInt32 wrap-around per token.
8286
+ *
8287
+ * Over TLS/WSS the transport already provides integrity and replay
8288
+ * protection, so small out-of-order deliveries (caused by multi-threaded
8289
+ * server writes) are tolerated with a warning rather than tearing down the
8290
+ * channel. Only truly anomalous conditions (e.g. a very large backward
8291
+ * jump that could indicate corruption) are treated as errors.
8292
+ */
8293
+ private validateSequenceNumber;
8294
+ private transform;
8295
+ constructor(context: SecureChannelContext);
8296
+ }
8297
+
8298
+ /**
8299
+ * Framing-only transform for pipe use.
8300
+ *
8301
+ * Accepts a stream of pre-encoded binary body {@link Uint8Array}s, wraps each
8302
+ * in a symmetric OPC UA message frame, and emits the framed bytes.
8303
+ * Pipe the output directly to the wire transport.
8304
+ * No request/response correlation is performed — use {@link SecureChannelFacade}
8305
+ * for that. Pair with {@link BinaryEncoderTransform} upstream:
8306
+ *
8307
+ * ```ts
8308
+ * requestStream
8309
+ * .pipeThrough(new SecureChannelTypeEncoder(config.encoder))
8310
+ * .pipeThrough(new SecureChannelMesssageEncoder(context))
8311
+ * .pipeTo(wsSendable);
8312
+ * ```
8313
+ */
8314
+ declare class SecureChannelMessageEncoder extends TransformStream<MsgBase$1, Uint8Array> {
8315
+ constructor(context: SecureChannelContext);
8316
+ }
8317
+
8318
+ declare class SecureChannelChunkReader extends TransformStream<MsgBase$1, MsgBase$1> {
8319
+ private logger;
8320
+ private transform;
8321
+ constructor(context: SecureChannelContext);
8322
+ }
8323
+
8324
+ declare class SecureChannelChunkWriter extends TransformStream<MsgBase$1, MsgBase$1> {
8325
+ private context;
8326
+ private logger;
8327
+ private transform;
8328
+ constructor(context: SecureChannelContext);
8329
+ }
8330
+
8331
+ export { ActionMethodDataType, ActionStateEnum, ActionTargetDataType, ActivateSessionRequest, ActivateSessionResponse, AddNodesItem, AddNodesRequest, AddNodesResponse, AddNodesResult, AddReferencesItem, AddReferencesRequest, AddReferencesResponse, AdditionalParametersType, AggregateConfiguration, AggregateFilter, AggregateFilterResult, AliasNameDataType, Annotation, AnnotationDataType, AnonymousIdentityToken, ApplicationConfigurationDataType, ApplicationDescription, ApplicationIdentityDataType, ApplicationTypeEnum, Argument, AttributeOperand, AuthorizationServiceConfigurationDataType, AxisInformation, AxisScaleEnumerationEnum, BaseConfigurationDataType, BaseConfigurationRecordDataType, SecureChannelTypeDecoder as BinaryDecoderTransform, SecureChannelTypeEncoder as BinaryEncoderTransform, BinaryReader, BinaryWriter, BitFieldDefinition, BrokerConnectionTransportDataType, BrokerDataSetReaderTransportDataType, BrokerDataSetWriterTransportDataType, BrokerTransportQualityOfServiceEnum, BrokerWriterGroupTransportDataType, BrowseDescription, BrowseDirectionEnum, BrowseNextRequest, BrowseNextResponse, BrowsePath, BrowsePathResult, BrowsePathTarget, BrowseRequest, BrowseResponse, BrowseResult, BrowseResultMaskEnum, BuildInfo, CallMethodRequest, CallMethodResult, CallRequest, CallResponse, CancelRequest, CancelResponse, CartesianCoordinates, CertificateGroupDataType, ChannelSecurityToken, ChassisIdSubtypeEnum, CloseSecureChannelRequest, CloseSecureChannelResponse, CloseSessionRequest, CloseSessionResponse, ComplexNumberType, Configuration, ConfigurationUpdateTargetType, ConfigurationUpdateTypeEnum, ConfigurationVersionDataType, ConnectionTransportDataType, ConsoleSink, ContentFilter, ContentFilterElement, ContentFilterElementResult, ContentFilterResult, ConversionLimitEnumEnum, CreateMonitoredItemsRequest, CreateMonitoredItemsResponse, CreateSessionRequest, CreateSessionResponse, CreateSubscriptionRequest, CreateSubscriptionResponse, CurrencyUnitType, DataChangeFilter, DataChangeNotification, DataChangeTriggerEnum, DataSetMetaDataType, DataSetOrderingTypeEnum, DataSetReaderDataType, DataSetReaderMessageDataType, DataSetReaderTransportDataType, DataSetWriterDataType, DataSetWriterMessageDataType, DataSetWriterTransportDataType, DataTypeAttributes, DataTypeDefinition, DataTypeDescription, DataTypeNode, DataTypeSchemaHeader, DataValue, DatagramConnectionTransport2DataType, DatagramConnectionTransportDataType, DatagramDataSetReaderTransportDataType, DatagramWriterGroupTransport2DataType, DatagramWriterGroupTransportDataType, DeadbandTypeEnum, DecimalDataType, Decoder, DeleteAtTimeDetails, DeleteEventDetails, DeleteMonitoredItemsRequest, DeleteMonitoredItemsResponse, DeleteNodesItem, DeleteNodesRequest, DeleteNodesResponse, DeleteRawModifiedDetails, DeleteReferencesItem, DeleteReferencesRequest, DeleteReferencesResponse, DeleteSubscriptionsRequest, DeleteSubscriptionsResponse, DiagnosticInfo, DiagnosticsLevelEnum, DiscoveryConfiguration, DoubleComplexNumberType, DtlsPubSubConnectionDataType, DuplexEnum, EUInformation, ElementOperand, Encoder, EndpointConfiguration, EndpointDataType, EndpointDescription, EndpointType, EndpointUrlListDataType, EnumDefinition, EnumDescription, EnumField, EnumValueType, EphemeralKeyType, EventFieldList, EventFilter, EventFilterResult, EventNotificationList, ExceptionDeviationFormatEnum, ExpandedNodeId, ExtensionObject, FieldMetaData, FieldTargetDataType, FilterOperand, FilterOperatorEnum, FindServersOnNetworkRequest, FindServersOnNetworkResponse, FindServersRequest, FindServersResponse, Frame, GenericAttributeValue, GenericAttributes, GetEndpointsRequest, GetEndpointsResponse, HistoryData, HistoryEvent, HistoryEventFieldList, HistoryModifiedData, HistoryModifiedEvent, HistoryReadDetails, HistoryReadRequest, HistoryReadResponse, HistoryReadResult, HistoryReadValueId, HistoryUpdateDetails, HistoryUpdateRequest, HistoryUpdateResponse, HistoryUpdateResult, HistoryUpdateTypeEnum, type ILogger, type ILoggerFactory, type IOpcType, type IReader, type ISecureChannel, type ISink, type IWriter, IdTypeEnum, IdentityCriteriaTypeEnum, IdentityMappingRuleType, InstanceNode, InterfaceAdminStatusEnum, InterfaceOperStatusEnum, IssuedIdentityToken, JsonActionMetaDataMessage, JsonActionNetworkMessage, JsonActionRequestMessage, JsonActionResponderMessage, JsonActionResponseMessage, JsonApplicationDescriptionMessage, JsonDataSetMessage, JsonDataSetMetaDataMessage, JsonDataSetReaderMessageDataType, JsonDataSetWriterMessageDataType, JsonNetworkMessage, JsonPubSubConnectionMessage, JsonServerEndpointsMessage, JsonStatusMessage, JsonWriterGroupMessageDataType, KeyValuePair, type LevelName, LinearConversionDataType, LiteralOperand, LldpManagementAddressTxPortType, LldpManagementAddressType, LldpTlvType, LocalizedText, type LogRecord, LogRecordsDataType, LoggerFactory, ManAddrIfSubtypeEnum, MdnsDiscoveryConfiguration, MessageSecurityModeEnum, MethodAttributes, MethodNode, ModelChangeStructureDataType, ModelChangeStructureVerbMaskEnum, ModificationInfo, ModifyMonitoredItemsRequest, ModifyMonitoredItemsResponse, ModifySubscriptionRequest, ModifySubscriptionResponse, MonitoredItemCreateRequest, MonitoredItemCreateResult, MonitoredItemModifyRequest, MonitoredItemModifyResult, MonitoredItemNotification, MonitoringFilter, MonitoringFilterResult, MonitoringModeEnum, MonitoringParameters, NameValuePair, NamingRuleTypeEnum, NegotiationStatusEnum, NetworkAddressDataType, NetworkAddressUrlDataType, NetworkGroupDataType, Node, NodeAttributes, NodeAttributesMaskEnum, NodeClassEnum, NodeId, NodeIdType, NodeReference, NodeTypeDescription, NotificationData, NotificationMessage, ObjectAttributes, ObjectNode, ObjectTypeAttributes, ObjectTypeNode, OpenFileModeEnum, OpenSecureChannelRequest, OpenSecureChannelResponse, OptionSet, Orientation, OverrideValueHandlingEnum, ParsingResult, PerformUpdateTypeEnum, PortIdSubtypeEnum, PortableNodeId, PortableQualifiedName, PriorityMappingEntryType, ProgramDiagnostic2DataType, ProgramDiagnosticDataType, PubSubConfiguration2DataType, PubSubConfigurationDataType, PubSubConfigurationRefDataType, PubSubConfigurationValueDataType, PubSubConnectionDataType, PubSubDiagnosticsCounterClassificationEnum, PubSubGroupDataType, PubSubKeyPushTargetDataType, PubSubStateEnum, PublishRequest, PublishResponse, PublishedActionDataType, PublishedActionMethodDataType, PublishedDataItemsDataType, PublishedDataSetCustomSourceDataType, PublishedDataSetDataType, PublishedDataSetSourceDataType, PublishedEventsDataType, PublishedVariableDataType, QosDataType, QualifiedName, QuantityDimension, QueryDataDescription, QueryDataSet, QueryFirstRequest, QueryFirstResponse, QueryNextRequest, QueryNextResponse, Range, RationalNumber, ReadAnnotationDataDetails, ReadAtTimeDetails, ReadEventDetails, ReadEventDetails2, ReadEventDetailsSorted, ReadProcessedDetails, ReadRawModifiedDetails, ReadRequest, ReadResponse, ReadValueId, ReaderGroupDataType, ReaderGroupMessageDataType, ReaderGroupTransportDataType, ReceiveQosDataType, ReceiveQosPriorityDataType, RedundancySupportEnum, RedundantServerDataType, RedundantServerModeEnum, ReferenceDescription, ReferenceDescriptionDataType, ReferenceListEntryDataType, ReferenceNode, ReferenceTypeAttributes, ReferenceTypeNode, RegisterNodesRequest, RegisterNodesResponse, RegisterServer2Request, RegisterServer2Response, RegisterServerRequest, RegisterServerResponse, RegisteredServer, RelativePath, RelativePathElement, RepublishRequest, RepublishResponse, RequestHeader, ResponseHeader, RolePermissionType, SamplingIntervalDiagnosticsDataType, SecureChannelChunkReader, SecureChannelChunkWriter, SecureChannelContext, SecureChannelFacade, SecureChannelMessageDecoder, SecureChannelMessageEncoder, SecureChannelTypeDecoder, SecureChannelTypeEncoder, SecurityGroupDataType, SecuritySettingsDataType, SecurityTokenRequestTypeEnum, SemanticChangeStructureDataType, ServerDiagnosticsSummaryDataType, ServerEndpointDataType, ServerOnNetwork, ServerStateEnum, ServerStatusDataType, ServiceCertificateDataType, ServiceCounterDataType, ServiceFault, SessionDiagnosticsDataType, SessionSecurityDiagnosticsDataType, SessionlessInvokeRequestType, SessionlessInvokeResponseType, SetMonitoringModeRequest, SetMonitoringModeResponse, SetPublishingModeRequest, SetPublishingModeResponse, SetTriggeringRequest, SetTriggeringResponse, SignatureData, SignedSoftwareCertificate, SimpleAttributeOperand, SimpleTypeDescription, SortOrderTypeEnum, SortRuleElement, SpanContextDataType, StandaloneSubscribedDataSetDataType, StandaloneSubscribedDataSetRefDataType, StatusChangeNotification, StatusCode, type StatusCodeFlagBits, StatusCodeGetFlagBits, StatusCodeIs, StatusCodeToString, StatusCodeToStringNumber, StatusResult, Structure, StructureDefinition, StructureDescription, StructureField, StructureTypeEnum, SubscribedDataSetDataType, SubscribedDataSetMirrorDataType, SubscriptionAcknowledgement, SubscriptionDiagnosticsDataType, TargetVariablesDataType, TcpConnectionHandler, TcpMessageDecoupler, TcpMessageInjector, TimeZoneDataType, TimestampsToReturnEnum, TraceContextDataType, TransactionErrorType, TransferResult, TransferSubscriptionsRequest, TransferSubscriptionsResponse, TranslateBrowsePathsToNodeIdsRequest, TranslateBrowsePathsToNodeIdsResponse, TransmitQosDataType, TransmitQosPriorityDataType, TrustListDataType, TrustListMasksEnum, TsnFailureCodeEnum, TsnListenerStatusEnum, TsnStreamStateEnum, TsnTalkerStatusEnum, TypeNode, UABinaryFileDataType, type UaBoolean, type UaByte, type UaByteString, type UaDateTime, type UaDouble, type UaFloat, type UaGuid, type UaInt16, type UaInt32, type UaInt64, type UaPrimitive, type UaSbyte, type UaString, type UaUint16, type UaUint32, type UaUint64, UadpDataSetReaderMessageDataType, UadpDataSetWriterMessageDataType, UadpWriterGroupMessageDataType, Union, UnregisterNodesRequest, UnregisterNodesResponse, UnsignedRationalNumber, UpdateDataDetails, UpdateEventDetails, UpdateStructureDataDetails, UserIdentityToken, UserManagementDataType, UserNameIdentityToken, UserTokenPolicy, UserTokenSettingsDataType, UserTokenTypeEnum, VariableAttributes, VariableNode, VariableTypeAttributes, VariableTypeNode, Variant, type VariantArrayValue, type VariantValue, Vector, ViewAttributes, ViewDescription, ViewNode, WebSocketFascade, WebSocketReadableStream, WebSocketWritableStream, WriteRequest, WriteResponse, WriteValue, WriterGroupDataType, WriterGroupMessageDataType, WriterGroupTransportDataType, X509IdentityToken, XVType, XmlElement, _3DCartesianCoordinates, _3DFrame, _3DOrientation, _3DVector, getLogger, initLoggerProvider, registerBinaryDecoders, registerEncoders, registerJsonDecoders, registerTypeDecoders, registerXmlDecoders, uaByte, uaDouble, uaFloat, uaGuid, uaInt16, uaInt32, uaInt64, uaSbyte, uaUint16, uaUint32, uaUint64 };