export interface CodeExecutionSpawnOptions { cwd?: string; env?: Record; stdin?: string | Uint8Array; streamStdin?: boolean; captureStdio?: boolean; } export interface CodeExecutionProcessOutput { pid: number; stream: "stdout" | "stderr"; data: Uint8Array; } export interface CodeExecutionVm { spawn(command: string, args: string[], options?: CodeExecutionSpawnOptions): { pid: number; }; onProcessOutput(pid: number, handler: (event: CodeExecutionProcessOutput) => void): () => void; waitProcess(pid: number): Promise; writeProcessStdin(pid: number, data: string | Uint8Array): Promise; closeProcessStdin(pid: number): Promise; killProcess(pid: number): void; stopProcess(pid: number): void; } export interface CodeExecutionOptions { cwd?: string; env?: Record; argv?: string[]; stdin?: string | Uint8Array; timeoutMs?: number; signal?: AbortSignal; onStdout?: (chunk: string) => void; onStderr?: (chunk: string) => void; } export interface CodeExecutionResult { success: boolean; exitCode: number; stdout: string; stderr: string; } export interface GuestError { name: string; message: string; stack?: string; } export type CodeEvaluationResult = { success: true; exitCode: 0; value: T; stdout: string; stderr: string; } | { success: false; exitCode: number; error: GuestError; stdout: string; stderr: string; }; export interface CodeProcess { readonly pid: number; writeStdin(data: string | Uint8Array): Promise; closeStdin(): Promise; kill(signal?: "SIGTERM" | "SIGKILL"): void; wait(): Promise; } export interface SpawnCodeProcessOptions extends CodeExecutionOptions { onComplete?: () => Promise; streamStdin?: boolean; } export declare function spawnCodeProcess(vm: CodeExecutionVm, command: string, args: string[], options?: SpawnCodeProcessOptions): CodeProcess; export declare function executeArgv(vm: CodeExecutionVm, command: string, args: string[], options?: SpawnCodeProcessOptions): Promise;