/** * Startup Progress * * The three-step checklist shown while the CLI comes up. Steps advance when * the work they name actually finishes. The module owns the spinner cadence * but never the pace. Nothing here sleeps, so startup costs what the work * costs. * * The clock and the terminal are injected, so the frame sequence is reachable * from a test without a real terminal or a real wait. */ /** How often the active step's spinner advances. */ export declare const SPINNER_INTERVAL_MS = 60; export interface StartupProgress { /** Mark the step at `index` active, everything before it is done. */ begin(index: number): void; /** Mark every step done, paint a final time, and stop animating. */ finish(): void; /** * Stop animating without claiming success, leaving the failed step visible * as the last one that was active. Use when startup threw. */ stop(): void; } /** The terminal and the clock, injected so tests can supply their own. */ export interface StartupProgressDeps { write: (text: string) => void; setInterval: (fn: () => void, ms: number) => number; clearInterval: (handle: number) => void; } /** * Begin painting the startup checklist. Returns a handle the caller advances * as each piece of real work completes. * * Stays in the alternate screen on `finish()` so the dashboard can take over * in place. */ export declare function startStartupProgress(stepLabels: string[], deps?: StartupProgressDeps): StartupProgress; //# sourceMappingURL=startup.d.ts.map