import type { CapturedExchange } from './proxy-types.js'; export interface ExecResult { exitCode: number; stdout: string; stderr: string; command?: string; } export interface ContainerOptions { image?: string; testName?: string; useSnapshots?: boolean; } export interface CapturedRequests { readonly length: number; at(index: number): CapturedExchange; all(): CapturedExchange[]; forRoute(path: string): CapturedRequests; withToolCalls(): CapturedRequests; withToolResults(): CapturedRequests; toolNamesAt(index: number): string[]; toolCallsAt(index: number): Array<{ name: string; arguments: Record; }>; messagesAt(index: number): Array<{ role: string; content?: string; name?: string; tool_call_id?: string; }>; toolResultAt(index: number, toolName: string): { content: string; tool_call_id: string; } | undefined; summary(): string; debugAt(index: number): string; } export interface Container { id: string; home: string; workspace: string; destroy(): Promise; exec(command: string): Promise; execOrThrow(command: string): Promise; login(): Promise; fileExists(path: string): Promise; readFile(path: string): Promise; writeFile(path: string, content: string): Promise; proxyLog(): Promise; requests(): Promise; writeSnapshots(snapshots: Array<{ key: string; response: unknown; }>): Promise; } export type Engine = 'podman';