using ZB.MOM.WW.MxGateway.Contracts.Proto;
using ZB.MOM.WW.MxGateway.Server.Configuration;
namespace ZB.MOM.WW.MxGateway.Server.Alarms;
///
/// Resolves the subtag watch-list the gateway sends to the worker when the
/// central alarm monitor operates in subtag-polling fallback mode. Merges
/// Galaxy Repository alarm-attribute discovery with the configured
/// include/exclude overrides and composes the per-attribute subtag item
/// addresses from the configured subtag names.
///
public interface IAlarmWatchListResolver
{
///
/// Builds the subtag watch-list for the supplied alarm configuration.
///
/// Alarm configuration carrying discovery and subtag-name settings.
/// Token to cancel the asynchronous operation.
///
/// The resolved watch-list, possibly empty, together
/// with the discovery provenance the caller needs to grade it.
/// Discovery being unavailable never throws — it yields an empty (or
/// config-only) list with set,
/// and the caller decides what to do with it. Cancellation
/// is the one exception: a triggered
/// still propagates an .
///
Task ResolveAsync(
AlarmsOptions options,
CancellationToken cancellationToken = default);
}