import { type PresenceStamps, type PresenceStatus } from "@cotal-ai/core"; export { c, color256 } from "@cotal-ai/workspace"; /** `prefix` then `text` wrapped to `width`, each continuation line indented under the text, each * piece painted on its own. */ export declare function hang(prefix: string, text: string | readonly string[], width: number, paint?: (s: string) => string): string[]; /** A `✗` failure or `↳` hint on stderr, wrapped at spaces to the terminal, each continuation line * under the text. Under a locale that is not UTF-8 it is written as plain writes it: `!` for the * failure mark and the punctuation in ASCII. */ export declare function stderrLine(prefix: string, text: string, paint: (s: string) => string): void; /** A presence status in words, after its mark unless `marks` is false. */ export declare function statusBadge(status: PresenceStatus, marks?: boolean): string; type DatedRow = PresenceStamps & { condition?: { code: string; }; }; /** The facts a status word needs beside it (#618): the harness-reported condition and how long it has * held, then how long the status has stood (#578) and the age of the seat's last harness-reported * work event (`activeAt`). A failure 3s old and one 40m old, or a turn that stopped advancing and one * that is advancing, no longer render alike. The seat reports `activeAt` itself, so the status word * keeps its own progress wording. Unstyled, because the console styles them with Ink, where an ANSI * reset inside the text would end a highlighted row's styling. */ export declare function presenceFacts(p: DatedRow, now?: number): { condition: string; ages: string; }; /** {@link presenceFacts} for ANSI output, with the ages dimmed. */ export declare function presenceDetail(p: DatedRow, now?: number): string; /** The age that follows an activity (#544): a hook flips the status every turn and leaves the * activity alone, so the status age cannot date it. */ export declare function activityAge(p: PresenceStamps, now?: number): string; /** A follow-up hint for failures whose signature is stale on-disk broker state: streams/durable * consumers minted by an older, incompatible Cotal generation survive every down/up cycle, and * JetStream rejects a same-name re-create with a different config. Rendered dim under the red * line by the error surfaces - the error itself stays the broker's own sentence. A root whose * maintenance journal holds a restore or a preserved cut gets no clean recipe: its store is that * data, and the hint never names a command that would delete it. */ export declare function staleStoreHint(msg: string, root?: string): string | undefined; //# sourceMappingURL=ui.d.ts.map