import type { AgentWorkState } from "../core/types.js";
/**
 * Run-status verbs. The spinner glyph animates fast; the verb stays stable and
 * only rotates on a slow cadence, and it advances in a pseudo-random order so
 * it never feels like a fixed list cycling.
 */
export declare const runStatusVerbs: string[];
/** Past-tense verbs for the run-completion summary ("Crunched for 17m 58s"). */
export declare const completionVerbs: string[];
/** Braille spinner glyphs — the classic fast loading animation. */
export declare const spinnerGlyphs: string[];
/** Pulsing accent glyphs used for completion / decorative markers. */
export declare const pulseGlyphs: string[];
/** Fast spinner glyph cadence in ms. */
export declare const spinnerFrameMs = 90;
/** Wave / highlight animation cadence in ms. */
export declare const waveFrameMs = 110;
/** The verb only changes once every this many ms. */
export declare const verbCycleMs = 10000;
export declare function randomRunStatusSeed(random?: () => number): number;
/** Pick the fast-animating braille glyph for the given frame counter. */
export declare function spinnerGlyph(frame: number): string;
/** Pick a pulsing accent glyph for the given frame counter. */
export declare function pulseGlyph(frame: number): string;
/**
 * Pick the run-status verb for the given elapsed time. The verb is stable for
 * `verbCycleMs`, then jumps to a pseudo-random next verb (never a fixed cycle).
 */
export declare function runStatusVerb(elapsedMs: number, seed?: number): string;
export type RunStatusParts = {
    verb: string;
    state: string;
    detail: string;
};
/**
 * Split the run status into its parts so the UI can animate the verb on its
 * own and render the (stable) state/detail separately with clear spacing.
 */
export declare function runStatusParts(options: {
    workState: AgentWorkState;
    status: string;
    elapsedMs: number;
    seed?: number;
}): RunStatusParts;
/** Format elapsed milliseconds as a compact human duration for the status line. */
export declare function formatElapsed(elapsedMs: number): string;
/** Format a run duration like "4s" or "17m 58s". */
export declare function formatRunDuration(elapsedMs: number): string;
/** Build a run-completion summary like "Crunched for 17m 58s". */
export declare function formatCompletionSummary(elapsedMs: number, seed?: number): string;
