import type { WorktreeCommitArtifact, WorktreeCommitValidationRequest } from "../core/types.js"; import type { TerminalRescueAttempt, TerminalRescueExecution, TerminalRescueHost } from "../core/terminal-rescue-runtime.js"; import { type OpenCodeModelAvailabilityClient } from "./model-routing-hook.js"; export declare const DEFAULT_TERMINAL_RESCUE_MODEL = "openai/gpt-6-astra"; export interface TerminalRescueSessionClient extends OpenCodeModelAvailabilityClient { session: { create(input: { body: { parentID: string; title: string; }; query: { directory: string; }; }): Promise; prompt(input: { path: { id: string; }; body: { agent: string; model: { providerID: string; modelID: string; }; parts: { type: "text"; text: string; }[]; }; query: { directory: string; }; }): Promise; abort(input: { path: { id: string; }; query: { directory: string; }; }): Promise; }; } export interface TerminalRescueHostOptions { readonly runID: string; readonly projectRoot: string; readonly ownerSessionID: string; readonly ledgerPath: string; readonly scopeRead: readonly string[]; readonly validation: WorktreeCommitValidationRequest; readonly client: TerminalRescueSessionClient; readonly createdChild: (childID: string, callID: string) => void; readonly finishedChild: (callID: string) => void; readonly releaseWriter: (childID: string) => Promise; readonly writerReleased: (childID: string) => Promise; } /** Uses the same session create/prompt/abort calls as native Task, and the existing worktree/artifact owners. */ export declare class OpenCodeTerminalRescueHost implements TerminalRescueHost { readonly options: TerminalRescueHostOptions; artifact: WorktreeCommitArtifact | undefined; candidateRef: string | undefined; constructor(options: TerminalRescueHostOptions); availableTarget(): Promise<{ model: string; variant: null; } | null>; start(attempt: TerminalRescueAttempt, signal: AbortSignal): Promise; }