using ZB.MOM.WW.ScadaBridge.Commons.Messages.Health; namespace ZB.MOM.WW.ScadaBridge.HealthMonitoring; /// /// Abstraction for sending health reports to central. /// In production, implemented over the gRPC central transport with an acked round-trip /// (review 01 [Medium]): the transport Asks and awaits a /// , so a lost/rejected report surfaces as a /// fault the sender can observe (and its per-interval counter-restore fires). /// public interface IHealthReportTransport { /// /// Sends a health report to central and completes only once central has /// acknowledged processing. MUST THROW on non-delivery (Ask timeout, actor /// system not started, or a not-accepted ack) — the sender's counter-restore /// path in HealthReportSender depends on that exception. /// /// The site health report to send. /// Cancels the in-flight send. /// A task that represents the asynchronous operation. Task SendAsync(SiteHealthReport report, CancellationToken cancellationToken); }