import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as ServiceMap from "effect/Context"; import { type Glyphs } from "./glyphs.js"; import { type ScenePart } from "./scene.js"; import { OutputStreams, type OutputWriteFailed } from "./streams.js"; /** Screen selects one foreground owner; Frame knows nothing about operations. */ export interface ActiveView { readonly owner: symbol; readonly kind: "activity" | "interaction"; readonly part: ScenePart; } declare const Frame_base: ServiceMap.ServiceClass Effect.Effect; readonly stderr: (content: string) => Effect.Effect; /** Append a milestone and replace the foreground under one write permit. */ readonly updateActive: (active: ActiveView | undefined, content?: string, immediate?: boolean) => Effect.Effect; /** A stale owner cannot finish or clear a newer interaction. */ readonly finishActive: (owner: symbol, content: string, next?: ActiveView) => Effect.Effect; readonly canInteract: Effect.Effect; readonly settle: Effect.Effect; }>; export declare class Frame extends Frame_base { } interface FrameOptions { readonly animate: boolean; readonly quiet: boolean; readonly colors: boolean; readonly glyphs?: Glyphs; } /** Serializes writes and owns only the transient tail, never the transcript. */ export declare const FrameLive: (options: FrameOptions) => Layer.Layer; export {}; //# sourceMappingURL=frame.d.ts.map