/**
 * Fixture provisioner — five-stage pipeline for preparing sandbox state.
 *
 * Pipeline stages:
 *   Resolve → Fetch → Cache → Transform → Inject
 *
 * Handles three URI schemes for v1:
 * - file:// — local filesystem path (relative to task)
 * - template:// — built-in project templates
 * - sanity:// — Content Lake document by ID or query
 *
 * @see docs/design-docs/architecture-overhaul/fixtures-artifacts.md
 * @see docs/archive/exec-plans/architecture-overhaul/phase-4-agent-harness.md
 */
import type { SandboxInfo } from "./sandbox-strategy.js";
/** A fixture reference from a task definition */
export interface FixtureRef {
    /** URI pointing to the fixture source */
    uri: string;
    /** Injection target */
    inject: "provider_config" | "system_prompt" | "vars" | "working_dir";
    /** Key name (for vars injection) or relative path (for working_dir) */
    key?: string;
    /** Content transform to apply before injection */
    transform?: FixtureTransform;
}
/** Available fixture transforms */
export type FixtureTransform = "extract-text" | "none" | "strip-html" | "truncate";
/** A resolved and fetched fixture ready for injection */
export interface ProvisionedFixture {
    /** Original URI */
    uri: string;
    /** Resolved content */
    content: string;
    /** SHA-256 hash of the content */
    contentHash: string;
    /** Injection target */
    inject: FixtureRef["inject"];
    /** Key or path */
    key?: string;
}
/** Result of the provisioning pipeline */
export interface ProvisioningResult {
    /** Successfully provisioned fixtures */
    fixtures: ProvisionedFixture[];
    /** Variable overrides from vars-injected fixtures */
    vars: Record<string, unknown>;
    /** Warnings (non-fatal issues) */
    warnings: string[];
    /** Fixture manifest for reproducibility */
    manifest: Record<string, string>;
}
/** Options for the provisioning pipeline */
export interface ProvisioningOptions {
    /** Root directory for resolving relative paths */
    rootDir: string;
    /** Sandbox to inject working_dir fixtures into */
    sandbox?: SandboxInfo;
    /** Cache directory for content-addressable storage */
    cacheDir?: string;
}
/**
 * Run the five-stage fixture provisioning pipeline.
 *
 * @param refs - Fixture references from the task definition
 * @param options - Provisioning configuration
 * @returns Provisioned fixtures and injection metadata
 */
export declare function provisionFixtures(refs: FixtureRef[], options: ProvisioningOptions): Promise<ProvisioningResult>;
