/**
* Running a wait against a real terminal.
*
* The view is pure; this is the only part that reads keys and moves the scene.
* It prints the wait's brief to the transcript once, puts the countdown line
* beneath the operation's ledger, and races the awaited effect against the
* keys: `o` reopens, `c` copies, `esc` and an interrupt stop the wait. Raw
* mode belongs to `Terminal.readInput`, which restores it when this scope
* closes.
*/
import * as Effect from "effect/Effect";
import type * as Terminal from "effect/Terminal";
import { type InteractionSurface } from "../interaction.js";
import { WaitAbandoned } from "./wait-abandoned.js";
import { type WaitActions, type WaitView } from "./wait.js";
/** Where a running wait paints, and where its brief and its settlement land. */
export type WaitSurface = InteractionSurface;
/**
* Carry one wait as a lifecycle fact for as long as it stands open. The
* `Waiting` event names the unit the wait parks, so the live ledger paints
* that row paused and every lossless observer sees the same pause. Every
* screen pairs its waits this way, whatever it can show of them.
*/
export declare const parkedOnWait: (view: WaitView, run: Effect.Effect) => Effect.Effect;
/**
* The static form: the brief alone, with no countdown and no keys. It is what
* a terminal that cannot animate — and a quiet invocation — shows, and the
* command simply waits.
*/
export declare const runStaticWait: (view: WaitView, awaited: Effect.Effect, surface: WaitSurface) => Effect.Effect;
export declare const runWait: (view: WaitView, awaited: Effect.Effect, actions: WaitActions, terminal: Terminal.Terminal, surface: WaitSurface) => Effect.Effect;
//# sourceMappingURL=run.d.ts.map