/**
 * Artifact Handoff Module (Module D)
 *
 * SPARC Architecture Reference: §2.5
 *
 * PURPOSE: Pass artifacts between services without mutation
 *
 * DEPENDENCIES: None (pure data passthrough)
 *
 * FORBIDDEN:
 * - Artifact Validation (NO schema checking)
 * - Artifact Transformation (NO field mapping)
 * - Artifact Storage (NO caching or persistence)
 * - Content Interpretation (NO parsing of artifact data)
 */
import type { BaseReference, PlanReference, SimulationReference, IntentReference, ExportReference, DiligencePackageReference } from '../types/index.js';
export interface IArtifactHandoff {
    /**
     * Pass artifact from upstream response to downstream request
     * PASSTHROUGH ONLY - no validation or transformation
     */
    passthrough<T extends BaseReference>(artifact: T): T;
    /**
     * Extract reference from raw response body
     * PASSTHROUGH ONLY - no validation
     */
    extractReference(body: unknown): BaseReference | null;
    /**
     * Build downstream request payload from reference
     * PASSTHROUGH ONLY - no transformation
     */
    buildPayload(ref: BaseReference, additionalParams?: Record<string, unknown>): unknown;
}
export declare class ArtifactHandoff implements IArtifactHandoff {
    /**
     * Pass artifact through unchanged
     * SPARC: Artifacts are never modified by CLI
     */
    passthrough<T extends BaseReference>(artifact: T): T;
    /**
     * Extract reference from response body
     * SPARC: No validation, just structural extraction
     *
     * Handles multiple response formats:
     * 1. Standard reference: { id, type, repository, ... }
     * 2. Planner response: { success, plan: { metadata: { planId, ... } }, ... }
     * 3. Manifests response: { id, type, repository, execution_metadata, ... }
     */
    extractReference(body: unknown): BaseReference | null;
    /**
     * Build payload for downstream service
     * SPARC: Reference passed verbatim, additional params merged
     */
    buildPayload(ref: BaseReference, additionalParams?: Record<string, unknown>): unknown;
}
export declare function isPlanReference(ref: BaseReference): ref is PlanReference;
export declare function isSimulationReference(ref: BaseReference): ref is SimulationReference;
export declare function isIntentReference(ref: BaseReference): ref is IntentReference;
export declare function isExportReference(ref: BaseReference): ref is ExportReference;
export declare function isDiligencePackageReference(ref: BaseReference): ref is DiligencePackageReference;
export declare function createArtifactHandoff(): IArtifactHandoff;
//# sourceMappingURL=artifact-handoff.d.ts.map