import { PiRun } from "./run.js"; import type { PiIntegrationTestOptions } from "../scenario/types.js"; /** * Runs one scenario through a real Pi process using TUI (default) or RPC pipes. * * @example * ```ts * const run = await new PiIntegrationTest({ * testName: "read-file", * cwd: workspace, * tools: ["read"], * conversation: [ * assistantMessage([toolCall({ id: "read-1", name: "read", arguments: { path: "README.md" } })], { stopReason: "toolUse" }), * assistantMessage([text("Done")]), * ], * }).run("Read README.md"); * ``` */ export declare class PiIntegrationTest { private readonly options; /** Store a scenario configuration for a later call to {@link run}. */ constructor(options: PiIntegrationTestOptions); /** * Send the initial user prompt to Pi and wait until the real agent settles. * * The run recreates its stable artifact directory and throws after writing `error.log` * when Pi cannot start, the scripted conversation is exhausted, or the timeout expires. * Failed runs also retain a partial `run.jsonl` and the raw trace. Its summary marks * `status: timeout | error` and `partial: true`; it is never a successful settlement. * If bundling fails, the raw runtime directory is kept instead of deleting evidence. */ run(prompt: string): Promise; }