import type { ClientStream, ClientStreamEvent } from "@opengeni/contracts/client-error-report"; export type StreamHealthState = "idle" | "connecting" | "live" | "reconnecting" | "ended" | "error"; export declare const LONG_DISCONNECT_MS = 30000; export declare const RECONNECT_REPORT_INTERVAL_MS = 60000; export type StreamHealthMonitorOptions = { report: (event: ClientStreamEvent) => void; now?: (() => number) | undefined; isVisible?: (() => boolean) | undefined; setTimer?: ((callback: () => void, ms: number) => unknown) | undefined; clearTimer?: ((timer: unknown) => void) | undefined; longDisconnectMs?: number | undefined; reconnectReportIntervalMs?: number | undefined; }; export type StreamHealthMonitor = { observe(state: StreamHealthState): void; visibilityChanged(): void; dispose(): void; }; export declare function createStreamHealthMonitor(options: StreamHealthMonitorOptions): StreamHealthMonitor; /** Report one live stream's health from its connection state while mounted. */ export declare function useStreamHealthTelemetry(stream: ClientStream, state: StreamHealthState): void;