/**
 * Sandbox configuration and lifecycle extensions for agent harness tasks.
 *
 * Builds Promptfoo beforeEach/afterEach hooks for provisioning and
 * tearing down sandbox working directories.
 */
import type { AgentHarnessTaskDefinition, FixtureSpec } from "../../../../_vendor/ailf-core/index.d.ts";
import type { PromptfooExtension, ResolvedFixture, SandboxConfigMeta } from "./types.js";
/**
 * Resolve fixture specs to absolute `{src, dest}` pairs against `cwd`.
 * Throws (fail fast) if any source path does not exist, so a broken task
 * aborts config generation instead of launching an agent into an empty sandbox.
 */
export declare function normalizeFixtures(specs: readonly FixtureSpec[], cwd: string): ResolvedFixture[];
/**
 * Build sandbox configuration from a task definition.
 *
 * Fixture paths are resolved to absolute at compile time using callerCwd
 * (the directory the pipeline was invoked from), because promptfoo runs
 * with cwd set to packages/eval/ — not the monorepo root where apps/ lives.
 */
export declare function buildSandboxConfig(task: AgentHarnessTaskDefinition, callerCwd?: string): SandboxConfigMeta;
export declare function buildLifecycleExtensions(task: AgentHarnessTaskDefinition): PromptfooExtension[];
export declare function buildBeforeEachHook(taskId: string): string;
export declare function buildAfterEachHook(taskId: string): string;
