using AVEVA.Historian.Client.Models;
namespace AVEVA.Historian.Client.StoreForward;
///
/// The actual delivery target the forwarder replays buffered writes through. Abstracted from
/// so the store-forward logic can be unit-tested without a server, and
/// so callers can plug a custom delivery path.
///
/// Contract: return true when the historian accepted the write; return false or throw
/// when it did not. The forwarder treats both a false return and a thrown exception as "not
/// delivered" and keeps the entry buffered for retry — so a transient disconnect (which throws) and
/// a soft rejection (which returns false) are both safe.
///
///
public interface IHistorianWriteSink
{
/// Delivers a batch of historical values for .
Task SendHistoricalValuesAsync(string tag, IReadOnlyList values, CancellationToken cancellationToken);
/// Delivers a single event.
Task SendEventAsync(HistorianEvent historianEvent, CancellationToken cancellationToken);
}