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

namespace StellaOps.Authority.Storage.Mongo.Stores;

public interface IAuthorityRevocationStore
{
    ValueTask UpsertAsync(AuthorityRevocationDocument document, CancellationToken cancellationToken);

    ValueTask<bool> RemoveAsync(string category, string revocationId, CancellationToken cancellationToken);

    ValueTask<IReadOnlyList<AuthorityRevocationDocument>> GetActiveAsync(DateTimeOffset asOf, CancellationToken cancellationToken);
}
