import { BinaryStream, type OutputBinaryStream } from "node-opcua-binary-stream"; import { ExtensionObject } from "node-opcua-extension-object"; import { type ConstructorFuncWithSchema, type DataTypeFactory, type IBaseUAObject, type IStructuredTypeSchema } from "node-opcua-factory"; import { ExpandedNodeId } from "node-opcua-nodeid"; export declare function getOrCreateConstructor(dataTypeName: string, dataTypeFactory: DataTypeFactory, encodingDefaultBinary?: ExpandedNodeId, _encodingDefaultXml?: ExpandedNodeId): AnyConstructorFunc; export declare class DynamicExtensionObject extends ExtensionObject { static schema: IStructuredTypeSchema; static possibleFields: string[]; constructor(options: Record, schema: IStructuredTypeSchema, dataTypeFactory: DataTypeFactory); encode(stream: OutputBinaryStream): void; decode(stream: BinaryStream): void; get schema(): IStructuredTypeSchema; toJSON(): Record; } interface AnyConstructable { schema: IStructuredTypeSchema; possibleFields: string[]; encodingDefaultBinary?: ExpandedNodeId; encodingDefaultXml?: ExpandedNodeId; new (options?: Record, schema?: IStructuredTypeSchema, factory?: DataTypeFactory): IBaseUAObject; } export type AnyConstructorFunc = AnyConstructable; export declare function createDynamicObjectConstructor(schema: IStructuredTypeSchema, dataTypeFactory: DataTypeFactory): ConstructorFuncWithSchema; export {};