using System;
namespace ZB.MOM.WW.MxGateway.Worker.MxAccess;
///
/// Optional ack-only seam over AVEVA's modern managed alarm client
/// (aaAlarmManagedClient.AlarmClient). When supplied to an
/// , GUID-keyed acknowledges route here
/// instead of the wnwrap COM consumer's AlarmAckByGUID (which is
/// E_NOTIMPL on current builds) — carrying full operator identity
/// (domain + full name) that the wnwrap 6-arg AlarmAckByName drops.
/// The production implementation is .
///
public interface IManagedAlarmAckClient : IDisposable
{
///
/// Run the client's Initialize → Register → Subscribe lifecycle against
/// the same subscription expression the read consumer uses
/// (\\<node>\Galaxy!<area>). Must be called once,
/// on the worker STA, before .
///
/// The subscription expression.
void Subscribe(string subscription);
///
/// Acknowledge a single alarm by GUID with full operator identity.
/// Returns AVEVA's native status (0 = success; 0 means accepted, not
/// necessarily applied — verify the alarm's acked state / Historian row).
///
/// The alarm GUID.
/// The acknowledgment comment.
/// The operator name.
/// The operator node.
/// The operator domain.
/// The operator full name.
/// The AVEVA-native status code.
int AcknowledgeByGuid(
Guid alarmGuid,
string comment,
string operatorName,
string operatorNode,
string operatorDomain,
string operatorFullName);
}