import type { OutputWriteFailed } from "../streams.js";
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 current activity and
* every lossless observer see 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