/**
 * Phase 4 Pipeline Schemas
 *
 * Zod validation schemas for reading Phase 3 artifacts from disk and
 * validating Phase 4 output structures.
 *
 * All "OnDisk" schemas use `.passthrough()` liberally so that Phase 3
 * format evolution does not break Phase 4 ingestion. Phase 4 only
 * validates the fields it actually reads; extra fields are preserved
 * but ignored.
 */
import { z } from 'zod';
export { SPARCOnDiskSchema, ADRIndexOnDiskSchema, DomainModelOnDiskSchema, TDDPlanOnDiskSchema, } from '../phase3/schemas.js';
/**
 * Schema for the phase3-manifest.json file written by Phase 3.
 *
 * Uses passthrough to tolerate extra fields and allow forward
 * compatibility with future Phase 3 manifest additions such as
 * additional metadata or new optional fields.
 */
export declare const Phase3ManifestOnDiskSchema: z.ZodObject<{
    schema_version: z.ZodString;
    trace_id: z.ZodString;
    implementation_language: z.ZodEnum<{
        typescript: "typescript";
        rust: "rust";
    }>;
    mixed_mode: z.ZodBoolean;
    ruflo_version: z.ZodString;
    artifacts: z.ZodArray<z.ZodObject<{
        path: z.ZodString;
        sha256: z.ZodString;
        size_bytes: z.ZodNumber;
    }, z.core.$loose>>;
    total_timing_ms: z.ZodNumber;
    success: z.ZodBoolean;
}, z.core.$loose>;
/**
 * Schema for the Phase 4 manifest written at the end of a successful run.
 * This is a loose schema (with passthrough) to allow forward compatibility
 * as Phase 4 output format evolves.
 */
export declare const Phase4ManifestSchema: z.ZodObject<{
    schema_version: z.ZodLiteral<"4.0.0">;
    trace_id: z.ZodString;
    implementation_language: z.ZodEnum<{
        typescript: "typescript";
        rust: "rust";
    }>;
    erp_system: z.ZodString;
    database_engine: z.ZodNullable<z.ZodString>;
    api_only: z.ZodBoolean;
    artifacts: z.ZodArray<z.ZodObject<{
        path: z.ZodString;
        sha256: z.ZodString;
        size_bytes: z.ZodNumber;
    }, z.core.$loose>>;
    total_timing_ms: z.ZodNumber;
    success: z.ZodBoolean;
}, z.core.$loose>;
export type ValidatedPhase3ManifestOnDisk = z.infer<typeof Phase3ManifestOnDiskSchema>;
export type ValidatedPhase4Manifest = z.infer<typeof Phase4ManifestSchema>;
//# sourceMappingURL=schemas.d.ts.map