///
/**
* Watches the given nodes for value changes.
* @emit {ReadStream.ReadResult} Emits `change` events when a watched node changes.
*/
export default class Watcher extends Emitter {
/**
* Creates a new Watcher with the given nodes.
* @param {NodeId[]} nodes The nodes to watch (recursively).
*/
constructor(nodes?: any[]);
/**
* The browser used to subscribe to server nodes.
* @type {NodeBrowser}
*/
_nodeBrowser: NodeBrowser;
/**
* Resolved once the server subscription is set up.
* @type {Promise}
*/
subscriptionStarted: Promise;
/**
* Initializes a server subscription.
* @return {Promise} A setup subscription.
*/
_setupSubscription(): Promise;
/** The current session, if connected @type {Session} */
_session: any;
/**
* Subscribes to value changes of a single node.
* @param {BrowsedNode} node A browsed node.
*/
_subscribe(node: any): Promise;
/**
* Called once a change has been detected and emits a 'change' or 'delete' event.
* @param {Object} node The node that changed.
* @param {?node-opcua~Variant} dataValue The current value.
*/
_handleChange({ nodeId }: any, dataValue: any): void;
/**
* Ends monitoring nodes.
*/
close(): void;
}
import Emitter from "events";
import NodeBrowser from "./NodeBrowser";