using ZB.MOM.WW.OtOpcUa.Core.Abstractions;
namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime;
///
/// Driver-side seam for batched writes. Production implementation routes by
/// : SecuredWrite / VerifiedWrite go through
/// MxCommandKind.WriteSecured, everything else through
/// MxGatewaySession.WriteAsync. Tests substitute a fake to record routing
/// decisions without touching real gw infrastructure.
///
public interface IGalaxyDataWriter
{
///
/// Write each entry; return one
/// per request entry, in input order. Implementations
/// MUST return the same length as the input — partial-tag failures are encoded
/// as Bad-status results, not omitted.
///
/// Pairs of full reference + value to write.
///
/// Maps a full reference to its discovered
/// so the writer can route SecuredWrite / VerifiedWrite tags through the
/// WriteSecured command instead of Write. Returns
/// when the tag isn't tracked
/// (the safest default — non-secured Write).
///
/// Aborts the in-flight batch.
Task> WriteAsync(
IReadOnlyList writes,
Func securityResolver,
CancellationToken cancellationToken);
}