UNPKG

@isaac-platform/isaac-integration-sdk

Version:

A Typescript SDK for integrating with ISAAC

49 lines 1.62 kB
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