/** * @module node-opcua-client-private */ import { EventEmitter } from "node:events"; import { type DataValue } from "node-opcua-data-value"; import type { ExtensionObject } from "node-opcua-extension-object"; import { ReadValueId, type ReadValueIdOptions, TimestampsToReturn } from "node-opcua-service-read"; import { type MonitoredItemCreateResult, type MonitoredItemModifyResult, MonitoringMode, MonitoringParameters, type MonitoringParametersOptions } from "node-opcua-service-subscription"; import { type Callback, type ErrorCallback, type StatusCode } from "node-opcua-status-code"; import type { Variant } from "node-opcua-variant"; import { ClientMonitoredItem } from "../client_monitored_item"; import { type ClientMonitoredItemBaseEx } from "../client_monitored_item_toolbox"; import type { ClientSubscription } from "../client_subscription"; import { type ClientSubscriptionImpl } from "./client_subscription_impl"; export type PrepareForMonitoringResult = { error: string; } | { error?: null; itemToMonitor: ReadValueIdOptions; monitoringMode: MonitoringMode; requestedParameters: MonitoringParameters; }; /** * ClientMonitoredItem * @class ClientMonitoredItem * @extends ClientMonitoredItemBase * * - event: * - "initialized" * - "err" * - "changed" * * note: this.monitoringMode = subscription_service.MonitoringMode.Reporting; */ export declare class ClientMonitoredItemImpl extends EventEmitter implements ClientMonitoredItem, ClientMonitoredItemBaseEx { #private; itemToMonitor: ReadValueId; monitoringParameters: MonitoringParameters; subscription: ClientSubscriptionImpl; monitoringMode: MonitoringMode; statusCode: StatusCode; monitoredItemId?: number; result?: MonitoredItemCreateResult; filterResult?: ExtensionObject; timestampsToReturn: TimestampsToReturn; internalSetMonitoringMode(monitoringMode: MonitoringMode): void; constructor(subscription: ClientSubscription, itemToMonitor: ReadValueIdOptions, monitoringParameters: MonitoringParametersOptions, timestampsToReturn: TimestampsToReturn, monitoringMode?: MonitoringMode); toJSON(): Record; toString(): string; /** * terminate the monitored item by removing the MonitoredItem from its subscription */ terminate(): Promise; terminate(callback: ErrorCallback): void; modify(parameters: MonitoringParametersOptions): Promise; modify(parameters: MonitoringParametersOptions, timestampsToReturn: TimestampsToReturn): Promise; modify(parameters: MonitoringParametersOptions, callback: Callback): void; modify(parameters: MonitoringParametersOptions, timestampsToReturn: TimestampsToReturn | null, callback: Callback): void; setMonitoringMode(monitoringMode: MonitoringMode): Promise; setMonitoringMode(monitoringMode: MonitoringMode, callback: Callback): void; /** * @internal * @param value * @private */ _notify_value_change(value: DataValue): void; /** * @internal * @param eventFields * @private */ _notify_event(eventFields: Variant[]): void; /** * @internal * @private */ _prepare_for_monitoring(): PrepareForMonitoringResult; /** * @internal * @param monitoredItemResult * @private */ _applyResult(monitoredItemResult: MonitoredItemCreateResult): void; _before_create(): void; /** * @internal * @param monitoredItemResult * @private */ _after_create(monitoredItemResult: MonitoredItemCreateResult): void; _terminate_and_emit(err?: Error): void; }