/// import { BaseEmitter } from './baseEmitter'; import { IDataEvent, IExecutionResult, ISettings, IStatusEvent, ITraceableAction } from './dataEmitter'; import { LoggerFacade } from './loggerFacade'; import { IService } from './maestro'; export interface IPollingSettings { interval: number; } /** * A base class that handles the scheduling of a polled fetch * to collect information and emit it */ export declare abstract class PollingEmitter extends BaseEmitter implements IService { protected _interval: number; protected _intervalTimer?: ReturnType; protected _lastDataEvent?: IDataEvent; protected _lastStatusEvent?: IStatusEvent; /** * * @param {string} id * @param {string} name * @param {string} desc * @param {number} interval * @param {LoggerFacade|undefined} logger */ constructor(id: string, name: string, desc: string, _interval: number, logger?: LoggerFacade | undefined); /** * Execute the poll and emit the result * @return {Promise} */ protected pollExecutor(): Promise; /** * Start polling */ startPolling(): void; /** * Stop polling */ stopPolling(): void; /** * Start polling * @return {Promise} */ start(): Promise; /** * Stop Polling * @return {Promise} */ stop(): Promise; /** * probe current data * @return {IDataEvent} */ probeCurrentData(): Promise; /** * probe the status * @return {IStatusEvent} */ probeStatus(): Promise; /** * set settings * @param {ISettings} settings * @return {Promise} */ applySettings(settings: ISettings & ITraceableAction & IPollingSettings): Promise; /** * Poll the resource */ abstract poll(): Promise; /** * Clean up timers used for polling */ dispose(): void; } /** * Polls a data source but only emits data events * when the data changes */ export declare abstract class DeltaPollingEmitter extends PollingEmitter { /** * Execute the poll and emit the result if there has been a change * @return {Promise} */ protected pollExecutor(): Promise; /** * Check if the data event includes changes * @param {IDataEvent} evt */ abstract hasChanged(evt: IDataEvent): boolean; }