export type StepStatus = "pending" | "active" | "done" | "failed" | "skipped";
export type StepInput = {
    id: string;
    label: string;
};
/**
 * A live checklist of stages. On a TTY it re-renders in place with per-stage
 * spinners and elapsed time; otherwise it prints one line per state transition
 * so non-interactive logs stay ordered and readable.
 */
export declare class StepList {
    private readonly steps;
    private readonly stream;
    private readonly interactive;
    private readonly title;
    private timer;
    private frame;
    private renderedLines;
    private started;
    constructor(steps: readonly StepInput[], options?: {
        title?: string;
    });
    start(): this;
    setActive(id: string, detail?: string): void;
    setDone(id: string, detail?: string): void;
    setFailed(id: string, detail?: string): void;
    setSkipped(id: string, detail?: string): void;
    setDetail(id: string, detail: string): void;
    /** Stop animation and leave the final frame in place. */
    stop(): void;
    private transition;
    private printLine;
    private render;
    private clear;
    private find;
    private hideCursor;
    private showCursor;
}
