using System.Threading;
using System.Threading.Tasks;
using StellaOps.Cli.Services.Models;
namespace StellaOps.Cli.Services;
///
/// Assembler for promotion attestations.
/// Per CLI-PROMO-70-001/002.
///
internal interface IPromotionAssembler
{
///
/// Assembles a promotion attestation from the provided request.
///
Task AssembleAsync(
PromotionAssembleRequest request,
CancellationToken cancellationToken);
///
/// Resolves image digest from registry.
///
Task ResolveImageDigestAsync(
string imageRef,
CancellationToken cancellationToken);
///
/// Signs a promotion predicate and produces a DSSE bundle.
/// Per CLI-PROMO-70-002.
///
Task AttestAsync(
PromotionAttestRequest request,
CancellationToken cancellationToken);
///
/// Verifies a promotion attestation bundle offline.
/// Per CLI-PROMO-70-002.
///
Task VerifyAsync(
PromotionVerifyRequest request,
CancellationToken cancellationToken);
}