import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as ServiceMap from "effect/Context"; import { type LivePlan } from "./live-ledger.js"; import { type Glyphs } from "./glyphs.js"; import { type ProgressState } from "./progress.js"; import { type ScenePart } from "./scene.js"; import { OutputStreams } from "./streams.js"; declare const Frame_base: ServiceMap.ServiceClass Effect.Effect; readonly stderr: (content: string) => Effect.Effect; /** Present the latest progress state; the frame diffs it against the previous one. */ readonly present: (operationId: string, state: ProgressState) => Effect.Effect; /** Whether an interaction can paint on the terminal-owned stream. */ readonly canInteract: Effect.Effect; /** * Give the live ledger the plan its rows come from; `undefined` leaves it * to synthesize rows from the units the operation reports. */ readonly showPlan: (operationId: string, plan: LivePlan | undefined) => Effect.Effect; /** Replace the interaction beneath the ledger — a prompt or a wait; `undefined` clears it. */ readonly showInteraction: (part: ScenePart | undefined) => Effect.Effect; readonly settle: Effect.Effect; }>; /** * The single terminal owner's live region and transcript. Transcript writes * insert above the live region; the region shows one scene — the operation's * ledger with at most one interaction beneath it — and clears at settlement, * where the result ledger takes over. */ export declare class Frame extends Frame_base { } export interface FrameOptions { readonly animate: boolean; readonly quiet: boolean; /** ANSI styling for the stderr live region and transcript transitions. */ readonly colors: boolean; readonly glyphs?: Glyphs; } export declare const FrameLive: (options: FrameOptions) => Layer.Layer; export {}; //# sourceMappingURL=frame.d.ts.map