import { Watcher } from "./watch.resolve";
import { CommandTrigger } from "./command.run";
import Rx = require("rx");
import { SequenceItem } from "./task.sequence.factories";
import { CrossbowReporter } from "./index";
export interface WatchEvent {
    event: string;
    path: string;
    runner: Watcher;
    watcherUID: string;
    duration?: number;
}
export interface WatchEventCompletion {
    sequence: SequenceItem[];
    watchEvent: WatchEvent;
}
/**
 * Create a stream that is the combination of all watchers
 */
export declare function createObservablesForWatchers(watchers: Watcher[], trigger: CommandTrigger): Rx.Observable<WatchEventCompletion>;
/**
 * Create a file-system watcher that will emit <WatchEvent>
 */
export declare function createObservableForWatcher(watcher: Watcher, reporter: any): Rx.Observable<WatchEvent>;
export declare function getRawOutputStream(watcher: Watcher, reporter: CrossbowReporter): Rx.Observable<WatchEvent>;
