using System;
using System.Threading;
using System.Threading.Tasks;
using StellaOps.Authority.Storage.Mongo.Documents;

namespace StellaOps.Authority.Storage.Mongo.Stores;

public interface IAuthorityRevocationExportStateStore
{
    ValueTask<AuthorityRevocationExportStateDocument?> GetAsync(CancellationToken cancellationToken);

    ValueTask<AuthorityRevocationExportStateDocument> UpdateAsync(
        long expectedSequence,
        long newSequence,
        string bundleId,
        DateTimeOffset issuedAt,
        CancellationToken cancellationToken);
}
