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);
}