namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime;
///
/// Driver-side seam for the gateway's session-less alarm feed. Production wraps
/// MxGatewayClient.StreamAlarmsAsync ();
/// tests substitute a fake to drive synthetic
/// events through 's IAlarmSource bridge without a
/// running gateway.
///
///
/// The feed is independent of any worker session — the updated gateway serves
/// alarms from an always-on central monitor, so the feed survives subscription
/// churn and reconnects its own stream on transient transport failures.
///
internal interface IGalaxyAlarmFeed : IAsyncDisposable
{
///
/// Fires for every alarm transition the gateway feed delivers — both the
/// entries of the initial active-alarm snapshot and every subsequent live
/// raise / acknowledge / clear. The OPC UA severity bucket is already mapped.
///
event EventHandler? OnAlarmTransition;
///
/// Start consuming the alarm feed on a background task. Idempotent — second
/// calls are no-ops while the loop is running.
///
void Start();
}