@@ -7,19 +7,19 @@ import { EventEmitter } from 'events';
77 * Typical usage:
88 * ```ts
99 * import pryv from 'pryv';
10- * import monitor from '@pryv/monitor';
10+ * import extendPryvMonitor from '@pryv/monitor';
1111 *
1212 * extendPryvMonitor(pryv);
1313 *
14- * const monitor = new pryv.Monitor('https://token@user.pryv.me', {
14+ * const mon = new pryv.Monitor('https://token@user.pryv.me', {
1515 * streams: ['data'],
1616 * });
1717 *
18- * monitor .on(pryv.Monitor.Changes.EVENT, (event) => {
18+ * mon .on(pryv.Monitor.Changes.EVENT, (event) => {
1919 * // handle new or changed event
2020 * });
2121 *
22- * await monitor .start();
22+ * await mon .start();
2323 * ```
2424 */
2525export default function extendPryvMonitor ( pryvLib : typeof pryv ) : typeof pryv . Monitor ;
@@ -60,6 +60,9 @@ declare module 'pryv' {
6060 export class Monitor extends EventEmitter {
6161 constructor ( apiEndpointOrConnection : APIEndpoint | Connection , eventsGetScope ?: MonitorScope ) ;
6262
63+ /** The connection used by this monitor */
64+ readonly connection : Connection ;
65+
6366 /**
6467 * Start the monitor and perform initial sync.
6568 * Resolves with the same monitor instance.
@@ -93,6 +96,7 @@ declare module 'pryv' {
9396
9497 /**
9598 * Attach an auto-update method implementation.
99+ * @param updateMethod - The update method to use (e.g., EventsTimer, Socket)
96100 */
97101 addUpdateMethod ( updateMethod : MonitorUpdateMethod ) : Monitor ;
98102
@@ -101,19 +105,18 @@ declare module 'pryv' {
101105 *
102106 * Events:
103107 * - `event` – new or updated event
104- * - `eventDelete` – deleted event
108+ * - `eventDelete` – deleted event (with id property)
105109 * - `streams` – updated streams list
106110 * - `error` – error object
107111 * - `ready` – monitor is ready for next update
108112 * - `stop` – monitor has been stopped
109113 */
110114 on ( event : 'event' , listener : ( event : Event ) => void ) : this;
111- on ( event : 'eventDelete' , listener : ( event : Event ) => void ) : this;
115+ on ( event : 'eventDelete' , listener : ( deletion : ItemDeletion ) => void ) : this;
112116 on ( event : 'streams' , listener : ( streams : Stream [ ] ) => void ) : this;
113- on ( event : 'error' , listener : ( error : any ) => void ) : this;
117+ on ( event : 'error' , listener : ( error : Error | unknown ) => void ) : this;
114118 on ( event : 'ready' , listener : ( ) => void ) : this;
115119 on ( event : 'stop' , listener : ( ) => void ) : this;
116- on ( event : string , listener : ( ...args : any [ ] ) => void ) : this;
117120
118121 /**
119122 * Static access to available update methods.
@@ -128,29 +131,59 @@ declare module 'pryv' {
128131 * Static enum of change names.
129132 */
130133 static Changes : typeof MonitorChanges ;
134+
135+ /** Reference to pryv library (set during extension) */
136+ static pryv : typeof pryv ;
131137 }
132138
133139 /**
134- * Base interface for update methods used by Monitor.
140+ * Base class for update methods used by Monitor.
141+ * Subclass this to create custom update strategies.
135142 */
136143 export class MonitorUpdateMethod {
144+ /** The monitor this update method is attached to */
137145 protected monitor ?: Monitor ;
146+
147+ /**
148+ * Assign a Monitor to this updater.
149+ * Usually called by the monitor itself on monitor.addUpdateMethod()
150+ * @param monitor - The monitor to attach to
151+ */
138152 setMonitor ( monitor : Monitor ) : void ;
153+
154+ /**
155+ * Called when all update tasks are done and monitor is ready for next update.
156+ * Override in subclasses to implement custom behavior.
157+ */
139158 ready ( ) : Promise < void > ;
159+
160+ /**
161+ * Called when monitor is stopped. Override to clean up resources.
162+ */
140163 stop ( ) : Promise < void > ;
141164 }
142165
143166 /**
144167 * Update method that polls for event changes at a fixed interval.
145168 */
146169 export class EventsTimerUpdateMethod extends MonitorUpdateMethod {
170+ /**
171+ * @param updateRateMS - The refresh rate in milliseconds (must be > 1)
172+ */
147173 constructor ( updateRateMS : number ) ;
174+
175+ /** The configured update rate in milliseconds */
176+ readonly updateRateMS : number ;
148177 }
149178
150179 /**
151- * Update method that uses @pryv/socket.io events.
180+ * Update method that uses @pryv/socket.io events for real-time updates.
181+ * Requires @pryv/socket.io to be loaded.
152182 */
153- export class SocketUpdateMethod extends MonitorUpdateMethod { }
183+ export class SocketUpdateMethod extends MonitorUpdateMethod {
184+ /** The socket instance (set after ready() is called) */
185+ protected socket ?: SocketIO ;
186+ }
154187}
155188
156189
0 commit comments