import Rx = require("rx"); import { CLI, CrossbowInput, CrossbowReporter } from "./index"; import { CrossbowConfiguration } from "./config"; import { SequenceItem } from "./task.sequence.factories"; import { Tasks } from "./task.resolve"; import { Runner } from "./task.runner"; import Immutable = require("immutable"); import { RunComplete } from "./command.run.execute"; import { WatchEvent } from "./watch.file-watcher"; import { Watcher } from "./watch.resolve"; export interface CommandTrigger { type: TriggerTypes; cli: CLI; input: CrossbowInput; config: CrossbowConfiguration; tracker?: any; tracker$?: any; shared?: Rx.BehaviorSubject>; reporter: CrossbowReporter; watchEvent?: WatchEvent; watcher?: Watcher; } export interface RunCommandSetup { tasks: Tasks; sequence: SequenceItem[]; runner: Runner; } export declare enum TriggerTypes { command, watcher, } export declare function getRunCommandSetup(trigger: CommandTrigger): RunCommandSetup; export default function handleIncomingRunCommand(cli: CLI, input: CrossbowInput, config: CrossbowConfiguration, reporter: CrossbowReporter): RunComplete;