import { SequenceItem } from "../task.sequence.factories";
import { CrossbowConfiguration } from "../config";
import { Task } from "../task.resolve";
import * as reports from "../reporter.resolve";
export declare const enum LogLevel {
    Short = 0,
    Verbose = 1,
}
export default function (report: reports.IncomingReport, observer: Rx.Observer<reports.OutgoingReport>): void;
export declare const reporterFunctions: {
    [x: number]: ((report: reports.UsingConfigFileReport) => string) | ((report: reports.InputErrorReport) => string[]) | ((report: reports.InvalidReporterReport) => string[]) | ((report: reports.DuplicateConfigFile) => string[]) | ((report: reports.ConfigFileCreatedReport) => string[]) | ((report: reports.InitInputFileTypeNotSupportedReport) => string[]) | ((report: reports.SimpleTaskListReport) => string[]) | ((report: reports.TaskTreeReport) => string[]) | ((report: reports.TaskListReport) => string) | ((report: reports.TaskErrorsReport) => string[]) | ((report: reports.TaskReportReport) => string) | ((report: reports.BeforeWatchTaskErrorsReport) => string[]) | ((report: reports.BeforeTaskListReport) => string[]) | ((report: reports.BeforeTasksDidNotCompleteReport) => string[]) | ((report: reports.WatchTaskTasksErrorsReport) => string[]) | ((report: reports.WatchTaskErrorsReport) => string[]) | ((report: reports.WatchTaskReportReport) => string) | ((report: reports.WatcherNamesReport) => string[]) | ((report: reports.NoFilesMatchedReport) => string) | ((report: reports.WatcherTriggeredTasksReport) => string) | (() => void) | ((report: reports.DocsInputFileNotFoundReport) => string[]) | ((report: reports.DocsAddedToFileReport) => string) | ((report: reports.SignalReceivedReport) => string[]);
};
/**
 * There are multiple ways to output trees to the screen,
 * so this helper function helps to normalize the output
 * by providing the same padding on all but the first line.
 */
export declare function multiLineTree(tree: string): string;
export interface CrossbowError extends Error {
    _cbError?: boolean;
    _cbExitCode?: number;
}
export declare function getStack(stack: string[], config: CrossbowConfiguration): string[];
/**
 * Show a tree of function calls
 */
export declare function reportSequenceTree(sequence: SequenceItem[], config: CrossbowConfiguration, title: any, showStats?: boolean): string;
export declare function reportTaskTree(tasks: Task[], config: CrossbowConfiguration, title: string): string[];
export declare function getErrors(task: any): any;
export declare function getLabel(task: any): string;
