import { type RuntimeParentActionDispatchResult } from "./runtime-parent-action-dispatch.js"; import { type WorkflowContinuationSnapshot } from "./workflow-continuation-policy.js"; import { type RuntimeSpawnLifecycleStatus } from "./runtime-spawn-bridge.js"; import type { CliIo, RuntimeLifecycleWatcherAdapter } from "./types.js"; export type RuntimeWatchInspectionStatus = "completed" | "failed" | "waiting" | "timed_out" | "skipped"; export interface RuntimeWatchInspection { sessionId: string; taskId: string; runtime?: string; phase?: string; role?: string; status: RuntimeWatchInspectionStatus; currentStatus: string; artifact?: string; reason: string; watcher: RuntimeLifecycleWatcherAdapter; } export interface RuntimeWatchReport { generatedAt: string; inspected: number; transitions: RuntimeWatchInspection[]; } export interface RuntimeParentActionDispatchOptions { root: string; taskId?: string; runtime?: string; untilIdle: boolean; timeoutMs: number; idleTimeoutMs: number; intervalMs: number; now?: () => number; io: CliIo; jsonOutput: boolean; } export interface RuntimeParentActionDispatchReport { generatedAt: string; mode: "once" | "until-idle"; taskId?: string; runtime?: string; attempts: number; timeoutMs: number; idleTimeoutMs: number; intervalMs: number; stopReason: "idle" | "timeout" | "once"; continuation?: WorkflowContinuationSnapshot; passes: RuntimeParentActionDispatchPass[]; } export interface RuntimeParentActionDispatchPass { pass: number; actions: RuntimeParentActionDispatchResult[]; watch: RuntimeWatchReport & { applied: RuntimeWatchTransitionApplication[]; }; } export interface RuntimeWatchTransitionApplication { sessionId: string; status: string; applied: boolean; } export declare function inspectRuntimeLifecycleWatch({ root, taskId, now, }: { root: string; taskId?: string; now?: number; }): Promise; export declare function dispatchRuntimeParentActionsUntilIdle({ root, taskId, runtime, untilIdle, timeoutMs, idleTimeoutMs, intervalMs, now, io, jsonOutput, }: RuntimeParentActionDispatchOptions): Promise; export declare function applyRuntimeWatchTransition(root: string, transition: RuntimeWatchInspection, { io, jsonOutput, dispatchParentActionsAfterResume, }: { io: CliIo; jsonOutput: boolean; dispatchParentActionsAfterResume?: boolean; }): Promise; export type RuntimeLifecycleAutoResumeResult = { status: "resumed"; runId: string; taskId: string; transition: "forward" | "blocked" | "done"; output: string[]; parentDispatch?: RuntimeParentActionDispatchReport; } | { status: "skipped"; reason: string; }; export declare function attemptRuntimeLifecycleAutoResume({ root, sessionId, status, disabled, jsonOutput, io, dispatchParentActions, }: { root: string; sessionId: string; status: RuntimeSpawnLifecycleStatus; disabled: boolean; jsonOutput: boolean; io: CliIo; dispatchParentActions?: boolean; }): Promise;