import type { ArtifactEvidenceVerdict } from './artifactEvidence.js'; export declare const ARTIFACT_GENERATION_SCHEMA_VERSION: 1; export type ArtifactGenerationSchemaVersion = typeof ARTIFACT_GENERATION_SCHEMA_VERSION; export type JsonPrimitive = string | number | boolean | null; export type JsonValue = JsonPrimitive | JsonObject | JsonValue[]; export type JsonObject = { [key: string]: JsonValue; }; export type ArtifactProvider = 'azure' | 'aws'; /** Provider-neutral identity shared by immutable Portal and plugin runs. */ export interface ArtifactGeneration { runId: RunId; generatedAt: string; } export interface ArtifactAccountBinding { provider: Provider; accountId: AccountId; } export type ArtifactSourceGenerationStatus = 'available' | 'partial' | 'missing' | 'stale' | 'unavailable'; type ArtifactSourceGenerationBase = ArtifactAccountBinding & { source: string; }; export type ArtifactSourceGeneration = (ArtifactSourceGenerationBase & { status: 'available'; generationId: string; generatedAt: string; reason?: never; }) | (ArtifactSourceGenerationBase & { status: 'partial' | 'stale'; generationId: string; generatedAt: string; reason: string; }) | (ArtifactSourceGenerationBase & { status: 'missing' | 'unavailable'; generationId?: never; generatedAt?: never; reason: string; }); export type AvailableArtifactSourceGeneration = Extract, { status: 'available'; }>; export type DegradedArtifactSourceGeneration = Exclude, AvailableArtifactSourceGeneration>; export type ArtifactContentEncoding = 'identity' | 'gzip'; /** Logical artifact metadata; storage paths remain application-owned. */ export interface ArtifactDescriptor { name: string; mediaType: 'application/json'; contentEncoding: ArtifactContentEncoding; byteLength: number; sha256: string; } export type ArtifactEvidenceIssueStatus = 'partial' | 'missing' | 'stale' | 'unavailable'; type ArtifactManifestEvidenceVerdict = Extract; export interface ArtifactEvidenceIssue { source: string; status: ArtifactEvidenceIssueStatus; reason: string; } export type ArtifactManifestEvidence = { status: Extract; issues: []; } | { status: Extract; issues: [ArtifactEvidenceIssue, ...ArtifactEvidenceIssue[]]; }; type ArtifactGenerationManifestBase = ArtifactAccountBinding & { schemaVersion: ArtifactGenerationSchemaVersion; artifactGeneration: ArtifactGeneration; artifacts: [ArtifactDescriptor, ...ArtifactDescriptor[]]; }; export type ArtifactGenerationManifest = ArtifactGenerationManifestBase & ({ status: 'completed'; sourceGenerations: [AvailableArtifactSourceGeneration, ...AvailableArtifactSourceGeneration[]]; evidence: Extract; } | { status: 'partial'; sourceGenerations: [ArtifactSourceGeneration, ...ArtifactSourceGeneration[]]; evidence: Extract; }); /** The sole visibility commit for one fully written immutable generation. */ export interface CompletedArtifactGenerationPointer extends ArtifactAccountBinding { schemaVersion: ArtifactGenerationSchemaVersion; status: 'completed'; artifactGeneration: ArtifactGeneration; manifest: ArtifactDescriptor; completedAt: string; } export {}; //# sourceMappingURL=artifactGeneration.d.ts.map