/**
 * 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<ArtifactResult>;
    validate(config: ArtifactConfig): Promise<ArtifactResult>;
    publish(config: ArtifactConfig, dryRun?: boolean): Promise<ArtifactResult>;
}
/**
 * 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<ArtifactResult>;
/**
 * Validate an artifact using the appropriate handler.
 * @task T4552
 */
export declare function validateArtifact(config: ArtifactConfig): Promise<ArtifactResult>;
/**
 * Publish an artifact using the appropriate handler.
 * @task T4552
 */
export declare function publishArtifact(config: ArtifactConfig, dryRun?: boolean): Promise<ArtifactResult>;
/**
 * Get all supported artifact types.
 * @task T4552
 */
export declare function getSupportedArtifactTypes(): ArtifactType[];
//# sourceMappingURL=artifacts.d.ts.map