import type { HandleMessageStreamEvent } from "#protocol/message.js";
import type { InputRequest, InputResponse } from "#runtime/input/types.js";
import { type CliTheme } from "#cli/ui/output.js";
/**
 * Sentinel returned when the CLI user pressed Escape while responding to a
 * pending runtime input request.
 */
export declare const ESCAPED_RUNTIME_INPUT_PROMPT: unique symbol;
/**
 * One raw answer collected from the CLI while prompting for pending runtime
 * input requests.
 */
export type RuntimeInputPromptValue = string | typeof ESCAPED_RUNTIME_INPUT_PROMPT | undefined;
/**
 * Outcome of one interactive CLI prompt pass for pending runtime input.
 */
export type RuntimeInputPromptResult = {
    readonly inputResponses: readonly InputResponse[];
    readonly kind: "submitted";
} | {
    readonly kind: "deferred";
} | {
    readonly kind: "aborted";
};
/**
 * Returns the last pending runtime-input batch emitted in one turn, if any.
 */
export declare function extractPendingRuntimeInputRequests(events: readonly HandleMessageStreamEvent[]): readonly InputRequest[];
/**
 * Interactively collects CLI-native responses for pending runtime input
 * requests.
 */
export declare function promptForRuntimeInputRequests(input: {
    ask(prompt: string): Promise<RuntimeInputPromptValue>;
    print(message: string): void;
    requests: readonly InputRequest[];
    theme: CliTheme;
}): Promise<RuntimeInputPromptResult>;
