using ZB.MOM.WW.OtOpcUa.Commons.Types;
namespace ZB.MOM.WW.OtOpcUa.Commons.Interfaces;
///
/// Live view of the local node's identity and the cluster's role topology. Implemented by
/// ClusterRoleInfo in OtOpcUa.Cluster; consumed by everything that needs to
/// distinguish admin-role vs driver-role members or react to role-leader changes (e.g. OPC UA
/// ServiceLevel computation).
///
public interface IClusterRoleInfo
{
NodeId LocalNode { get; }
IReadOnlySet LocalRoles { get; }
bool HasRole(string role);
IReadOnlyList MembersWithRole(string role);
NodeId? RoleLeader(string role);
event EventHandler? RoleLeaderChanged;
}