using NATS.Server.JetStream.Models; namespace NATS.Server.JetStream.Storage; public interface IStreamStore { ValueTask AppendAsync(string subject, ReadOnlyMemory payload, CancellationToken ct); ValueTask LoadAsync(ulong sequence, CancellationToken ct); ValueTask LoadLastBySubjectAsync(string subject, CancellationToken ct); ValueTask> ListAsync(CancellationToken ct); ValueTask RemoveAsync(ulong sequence, CancellationToken ct); ValueTask PurgeAsync(CancellationToken ct); ValueTask CreateSnapshotAsync(CancellationToken ct); ValueTask RestoreSnapshotAsync(ReadOnlyMemory snapshot, CancellationToken ct); ValueTask GetStateAsync(CancellationToken ct); }