using System.Threading;
using System.Threading.Tasks;
using StellaOps.Vexer.Core;

namespace StellaOps.Vexer.Storage.Mongo;

public interface IVexRawStore : IVexRawDocumentSink
{
    ValueTask<VexRawDocument?> FindByDigestAsync(string digest, CancellationToken cancellationToken);
}

public interface IVexExportStore
{
    ValueTask<VexExportManifest?> FindAsync(VexQuerySignature signature, VexExportFormat format, CancellationToken cancellationToken);

    ValueTask SaveAsync(VexExportManifest manifest, CancellationToken cancellationToken);
}
