openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
39 lines (38 loc) • 2.2 kB
TypeScript
import { i as OpenClawConfig } from "./types.openclaw-DBHlrrVj.js";
import { n as GatewayMessageChannel } from "./message-channel-normalize-IwuTHJHT.js";
//#region src/infra/heartbeat-events.d.ts
type HeartbeatIndicatorType = "ok" | "alert" | "error";
type HeartbeatEventPayload = {
ts: number;
status: "sent" | "ok-empty" | "ok-token" | "skipped" | "failed";
to?: string;
accountId?: string;
preview?: string;
durationMs?: number;
hasMedia?: boolean;
reason?: string; /** The channel this heartbeat was sent to. */
channel?: string; /** Whether the message was silently suppressed (showOk: false). */
silent?: boolean; /** Indicator type for UI status display. */
indicatorType?: HeartbeatIndicatorType;
};
declare function resolveIndicatorType(status: HeartbeatEventPayload["status"]): HeartbeatIndicatorType | undefined;
declare function emitHeartbeatEvent(evt: Omit<HeartbeatEventPayload, "ts">): void;
declare function onHeartbeatEvent(listener: (evt: HeartbeatEventPayload) => void): () => void;
declare function getLastHeartbeatEvent(): HeartbeatEventPayload | null;
declare function resetHeartbeatEventsForTest(): void;
//#endregion
//#region src/infra/heartbeat-visibility.d.ts
/** Resolved heartbeat presentation toggles after defaults/channel/account precedence. */
type ResolvedHeartbeatVisibility = {
/** Whether successful heartbeat content should be sent as visible chat text. */showOk: boolean; /** Whether warning/error heartbeat content should be sent as visible chat text. */
showAlerts: boolean; /** Whether heartbeat status should emit indicator events for UI surfaces. */
useIndicator: boolean;
};
/** Resolves heartbeat visibility for a channel, applying account > channel > defaults precedence. */
declare function resolveHeartbeatVisibility(params: {
cfg: OpenClawConfig;
channel: GatewayMessageChannel;
accountId?: string;
}): ResolvedHeartbeatVisibility;
//#endregion
export { emitHeartbeatEvent as a, resetHeartbeatEventsForTest as c, HeartbeatIndicatorType as i, resolveIndicatorType as l, resolveHeartbeatVisibility as n, getLastHeartbeatEvent as o, HeartbeatEventPayload as r, onHeartbeatEvent as s, ResolvedHeartbeatVisibility as t };