/// <reference path="../node_modules/immutable/dist/immutable.d.ts" />
import { TaskRunModes } from "./task.resolve";
import { LogLevel } from "./reporters/defaultReporter";
import { InitConfigFileTypes } from "./command.init";
export interface CrossbowConfiguration {
    cwd: string;
    runMode: TaskRunModes;
    verbose: LogLevel;
    parallel: boolean;
    fail: boolean;
    force: boolean;
    reporter: string;
    handoff: boolean;
    config: string[];
    interactive: boolean;
    outputOnly: boolean;
    suppressOutput: boolean;
    progress: boolean;
    cbfile?: string;
    dump: boolean;
    envPrefix: string;
    env: any;
    before: string[];
    type?: InitConfigFileTypes;
    debug: boolean;
    reporters: Array<string | Function>;
    skip: string[];
    tasksDir: string[];
    file?: string;
    output?: string;
    dryRun?: boolean;
    dryRunDuration?: number;
}
/**
 * Merge default with incoming opts.
 * Also deal with single char flag
 * @returns {*}
 */
export declare function merge(opts: CrossbowConfiguration | any): CrossbowConfiguration;
