using System; using System.Collections.Immutable; using System.Threading; using System.Threading.Tasks; namespace StellaOps.Excititor.Core; public interface IVexAttestationClient { ValueTask SignAsync(VexAttestationRequest request, CancellationToken cancellationToken); ValueTask VerifyAsync(VexAttestationRequest request, CancellationToken cancellationToken); } public sealed record VexAttestationRequest( string ExportId, VexQuerySignature QuerySignature, VexContentAddress Artifact, VexExportFormat Format, DateTimeOffset CreatedAt, ImmutableArray SourceProviders, ImmutableDictionary Metadata); public sealed record VexAttestationResponse( VexAttestationMetadata Attestation, ImmutableDictionary Diagnostics); public sealed record VexAttestationVerification( bool IsValid, ImmutableDictionary Diagnostics);