import * as dntShim from "../../../../../_dnt.shims.js";
import { type prettyTimeOptions } from "./time.js";
interface constructorOptions {
    title?: string;
    width?: number;
    complete?: string;
    incomplete?: string;
    clear?: boolean;
    interval?: number;
    display?: string;
    prettyTime?: boolean;
    output?: typeof dntShim.Deno.stdout | typeof dntShim.Deno.stderr;
}
interface renderOptions {
    completed: number;
    text?: string;
    total?: number;
    complete?: string;
    incomplete?: string;
    prettyTimeOptions?: prettyTimeOptions;
}
/**
 * MultiProgressBar multiple progress bars.
 */
export declare class MultiProgressBar {
    #private;
    width: number;
    complete: string;
    incomplete: string;
    clear: boolean;
    interval: number;
    display: string;
    prettyTime: boolean;
    private lastStr;
    private start;
    private lastRenderTime;
    private encoder;
    private writer;
    /**
     * Title, total, complete, incomplete, can also be set or changed in the render method
     *
     * - title Progress bar title, default: ''
     * - width the displayed width of the progress, default: 50
     * - complete completion character, default: colors.bgGreen(' '), can use any string
     * - incomplete incomplete character, default: colors.bgWhite(' '), can use any string
     * - clear  clear the bar on completion, default: false
     * - interval  minimum time between updates in milliseconds, default: 16
     * - display  What is displayed and display order, default: ':bar :text :percent :time :completed/:total'
     * - prettyTime Whether to pretty print time and eta
     * - output Output stream, can be Deno.stdout or Deno.stderr, default is Deno.stdout
     */
    constructor({ title, width, complete, incomplete, clear, interval, display, prettyTime, output, }?: constructorOptions);
    /**
     * "render" the progress bar
     *
     * - `bars` progress bars
     *   - `completed` completed value
     *   - `total` optional, total number of ticks to complete, default: 100
     *   - `text` optional, text displayed per ProgressBar, default: ''
     *   - `complete` - optional, completion character
     *   - `incomplete` - optional, incomplete character
     *   - `prettyTimeOptions` - prettyTime options
     */
    render(bars: Array<renderOptions>): Promise<void>;
    /**
     * end: end a progress bar.
     * No need to call in most cases, unless you want to end before 100%
     */
    end(): Promise<void>;
    /**
     * interrupt the progress bar and write a message above it
     *
     * @param message The message to write
     */
    console(message: string | number): Promise<void>;
    private write;
    private resetScreen;
    private get ttyColumns();
    private breakLine;
    private stdoutWrite;
    private showCursor;
}
export {};
//# sourceMappingURL=multi.d.ts.map