import { type ExitSummaryInput } from "../rendering/exit-summary.js"; import type { AppServices } from "./composition-root.js"; export interface ExitEpilogueOptions { readonly services: AppServices; readonly startedAt: number; /** Renderer-owned sink; ui-core never writes terminal bytes itself. */ readonly write: (text: string) => void; readonly enabled?: boolean | undefined; readonly now?: (() => number) | undefined; readonly cwd?: (() => string) | undefined; } export interface ExitEpilogue { readonly capture: () => void; readonly run: () => void; } export declare function buildExitSummaryInput(options: ExitEpilogueOptions): ExitSummaryInput; /** * `capture` must run while the session is still live (register it as the FIRST * disposer so reverse-order teardown runs it last, after the final history * flush); `run` renders the captured snapshot once the terminal is back. */ export declare function createExitEpilogue(options: ExitEpilogueOptions): ExitEpilogue;