@isaac-platform/isaac-integration-sdk
Version:
A Typescript SDK for integrating with ISAAC
49 lines • 1.62 kB
TypeScript
import { EventEmitter } from "events";
import { HeartbeatEvents, HeartbeatState } from "./heartbeatTypes.js";
export declare class Heartbeat extends EventEmitter {
private beating;
private interval;
/**
* var status represents the connection to ISAAC
* can be one of:
* - uninitialized
* - starting
* - connected
* - disconnected
* - error
*/
status: HeartbeatState;
private intervalID?;
/**
* Creates ISAAC heartbeat handler.
*/
constructor();
/**
* Starts heartbeat process and updates status.
* @param interval {number} - (optional) override default 5000 ms interval
*/
start: (interval?: number) => void;
/**
* Stops heartbeat process and updates status.
*/
stop: () => void;
/**
* Updates the connection status and emits on a change.
* @param state {string} - New state to define and announce
*/
updateStatus: (state: HeartbeatState) => void;
/**
* Emits heartbeat messages.
* @param messages
*/
private emitHeartbeatMessages;
/**
* Makes async heartbeat PUT to ISAAC. Updates status to "connected" or "error" depending on acknowledgement from ISAAC.
* TODO: Implement ISAAC message bus.
*/
beat: () => void;
emit<K extends keyof HeartbeatEvents>(event: K, ...args: Parameters<HeartbeatEvents[K]>): boolean;
on<K extends keyof HeartbeatEvents>(event: K, listener: HeartbeatEvents[K]): this;
off<K extends keyof HeartbeatEvents>(event: K, listener: HeartbeatEvents[K]): this;
}
//# sourceMappingURL=heartbeat.d.ts.map