import { Logger } from '../../Logger';
import { TaskContract, TaskRendererOptions, RendererContract } from '../../Contracts';
/**
 * As the name suggests, render tasks in minimal UI for better viewing
 * experience.
 */
export declare class MinimalRenderer {
    private options;
    private testing;
    /**
     * The renderer to use to output logs
     */
    private renderer?;
    /**
     * List of registered tasks
     */
    private registeredTasks;
    /**
     * Reference to the logger. We will capture logger messages
     * and show them next to the task
     */
    logger: Logger;
    constructor(options: TaskRendererOptions, testing?: boolean);
    /**
     * Returns the renderer for rendering the messages
     */
    private getRenderer;
    /**
     * Instantiates the logger and defines a custom renderer
     * to log messages in context with the currently running
     * task
     */
    private instantiateLogger;
    /**
     * Returns the presentation string for an idle task
     */
    private presentIdleTask;
    /**
     * Returns the presentation string for a running task. The log line is
     * updated when logger recieves the message.
     */
    private presentRunningTask;
    /**
     * Returns the presentation string for a failed task
     */
    private presentFailedTask;
    /**
     * Returns the presentation string for a succeeded task
     */
    private presentSucceededTask;
    /**
     * Renders a given task
     */
    private renderTask;
    /**
     * Re-renders all tasks by inspecting their current state
     */
    private renderTasks;
    /**
     * Define a custom renderer. Logs to "stdout" and "stderr"
     * by default
     */
    useRenderer(renderer: RendererContract): this;
    /**
     * Register tasks to render
     */
    tasks(tasks: TaskContract[]): this;
    /**
     * Render all tasks
     */
    render(): void;
}
