import type { ToolResult } from "../../../types.js"; import type { ToolWatchdog } from "../tool-watchdog.js"; export interface ToolSupervisionPorts { readonly watchdog: ToolWatchdog; readonly parentSignal: AbortSignal; readonly toolSignal: AbortSignal; readonly isAbortError: (error: Error, signal: AbortSignal) => boolean; readonly liveBytes: () => number; readonly writeToolOutput: (chunk: string) => void; readonly updateJobStatus: (status: "exited" | "failed", exitCode: number | undefined) => void; readonly cleanup: () => void; } export type ToolSupervisionOutcome = { readonly kind: "settled"; readonly result: ToolResult; } | { readonly kind: "cancelled"; readonly result: ToolResult; }; export declare const superviseToolExecution: (ports: ToolSupervisionPorts, startWork: () => Promise) => Promise;