/// <reference path="../typings/main.d.ts" />
import { TaskRunner } from './task.runner';
import { ReportNames } from "./reporter.resolve";
export interface CLI {
    input: string[];
    flags: any;
    trailing?: string;
    command?: string;
}
export interface CrossbowInput {
    tasks: any;
    watch: any;
    options: any;
    env?: any;
    config?: any;
}
export interface CrossbowReporter {
    (name: ReportNames, ...args: any[]): void;
}
/**
 * Handle any type of init. It could be from the CLI, or via the API.
 * eg, any command from the CLI ultimately ends up in the following call
 *    $  crossbow run task1 -c conf/cb.js
 *    -> handleIncoming({
 *          input: ['run', 'task1'],
 *          flags: {c: 'conf/cb.js'}
 *       });
 */
declare function handleIncoming(cli: CLI, input?: CrossbowInput | any): TaskRunner;
export default handleIncoming;
