/** * Release artifact management - pluggable artifact handlers. * Ported from lib/release/release-artifacts.sh * * Provides a registry of artifact type handlers for build, validate, * and publish operations across multiple package ecosystems. * * @task T4552 * @epic T4545 */ /** Supported artifact types. */ export type ArtifactType = 'npm-package' | 'python-wheel' | 'python-sdist' | 'go-module' | 'cargo-crate' | 'ruby-gem' | 'docker-image' | 'github-release' | 'generic-tarball'; /** Artifact configuration from release config. */ export interface ArtifactConfig { type: ArtifactType; buildCommand?: string; publishCommand?: string; package?: string; registry?: string; options?: { provenance?: boolean; access?: string; tag?: string; attestations?: boolean; [key: string]: unknown; }; [key: string]: unknown; } /** Result of an artifact operation. */ export interface ArtifactResult { success: boolean; output: string; dryRun: boolean; } /** Artifact handler interface. */ export interface ArtifactHandler { build(config: ArtifactConfig, dryRun?: boolean): Promise; validate(config: ArtifactConfig): Promise; publish(config: ArtifactConfig, dryRun?: boolean): Promise; } /** * Get handler for an artifact type. * @task T4552 */ export declare function getArtifactHandler(artifactType: ArtifactType): ArtifactHandler | null; /** * Check if a handler is registered for an artifact type. * @task T4552 */ export declare function hasArtifactHandler(artifactType: string): artifactType is ArtifactType; /** * Build an artifact using the appropriate handler. * @task T4552 */ export declare function buildArtifact(config: ArtifactConfig, dryRun?: boolean): Promise; /** * Validate an artifact using the appropriate handler. * @task T4552 */ export declare function validateArtifact(config: ArtifactConfig): Promise; /** * Publish an artifact using the appropriate handler. * @task T4552 */ export declare function publishArtifact(config: ArtifactConfig, dryRun?: boolean): Promise; /** * Get all supported artifact types. * @task T4552 */ export declare function getSupportedArtifactTypes(): ArtifactType[]; //# sourceMappingURL=artifacts.d.ts.map