import { EventEmitter } from 'eventemitter3'; export declare const getPollInterval: (deviceId: number, config?: Dictionary) => Promise; export declare const POLL_JITTER_FACTOR = 1.5; export declare enum DeviceOnlineStates { Unknown = "unknown", Timeout = "timeout", Offline = "offline", Online = "online" } interface MetricEventArgs { startAt: number; endAt: number; err?: any; } export declare class DeviceOnlineStateManager extends EventEmitter<{ change: (args: MetricEventArgs & { deviceId: number; newState: DeviceOnlineStates; }) => void; stats: (args: MetricEventArgs & { totalsent: number; totalrecv: number; msgs: number; hiddenmsgs: number; }) => void; }> { private static readonly REDIS_NAMESPACE; private static readonly EXPIRED_QUEUE; private static readonly RSMQ_READ_TIMEOUT; private static readonly QUEUE_STATS_INTERVAL_MSEC; private readonly featureIsEnabled; private isConsuming; private rsmq; constructor(); private setupQueueStatsEmitter; private updateDeviceModel; private consume; private getDeviceOnlineState; private scheduleChangeOfStateForDevice; start(): void; captureEventFor(deviceId: number, timeoutSeconds: number): Promise; } export declare const getInstance: () => DeviceOnlineStateManager; export {};