import type { ModelMessage } from "ai";
import type { HarnessSession, SessionStateMap } from "#harness/types.js";
import type { CodeModeInterrupt } from "#shared/code-mode.js";
/**
 * One code-mode invocation parked on a host interrupt (nested-tool approval,
 * connection auth, or any future durable interrupt kind), plus the assistant
 * response messages that produced the outer `code_mode` tool result.
 *
 * Every interrupt kind rides this single pending slot; the kind-specific
 * behavior lives in {@link parkOnCodeModeInterrupt} /
 * {@link continuePendingCodeModeInterrupt}, keyed by `interrupt.payload.kind`.
 */
export interface PendingCodeModeInterrupt {
    readonly interrupt: CodeModeInterrupt;
    readonly responseMessages: readonly ModelMessage[];
}
/** Returns the pending code-mode interrupt stored on the session, if any. */
export declare function getPendingCodeModeInterrupt(state: SessionStateMap | undefined): PendingCodeModeInterrupt | undefined;
/** Stores one pending code-mode interrupt on the session. */
export declare function setPendingCodeModeInterrupt(input: {
    readonly interrupt: CodeModeInterrupt;
    readonly responseMessages: readonly ModelMessage[];
    readonly session: HarnessSession;
}): HarnessSession;
/** Clears any pending code-mode interrupt from the session. */
export declare function clearPendingCodeModeInterrupt(session: HarnessSession): HarnessSession;
