/**
 * @license
 * Copyright 2022-2026 Greg Lauckhart <greg@lauckhart.com>
 * SPDX-License-Identifier: Apache-2.0
 */
import { Package } from "./package.js";
export declare const STATUS_ICON_SUCCESS: import("../ansi-text/text-builder.js").TextBuilder;
export declare const STATUS_ICON_FAILURE: import("../ansi-text/text-builder.js").TextBuilder;
export declare const STATUS_ICON_SKIPPED: import("../ansi-text/text-builder.js").TextBuilder;
export declare class Progress {
    #private;
    status: Progress.Status;
    constructor();
    emphasize(text: unknown): import("../ansi-text/text-builder.js").TextBuilder;
    deemphasize(text: unknown): import("../ansi-text/text-builder.js").TextBuilder;
    skip(why: string, pkg: Package): void;
    startup(what: string, pkgOrOverwrite?: Package | boolean): void;
    update(text: string, extra?: string): void;
    success(text: string): void;
    failure(text: string): void;
    info(label: string, value?: any): void;
    warn(text: string): void;
    close(): void;
    [Symbol.dispose](): void;
    refresh(): void;
    subtask(text: string, fn: () => Promise<void>): Promise<void>;
    run<T>(what: string, fn: () => T | Promise<T>): Promise<T>;
}
export declare namespace Progress {
    enum Status {
        Startup = "startup",
        Ongoing = "ongoing",
        Success = "success",
        Failure = "failure"
    }
    function formatDuration(duration: number): string;
}
//# sourceMappingURL=progress.d.ts.map