import { Watcher } from "./watch.resolve"; import { CommandTrigger } from "./command.run"; import { TaskReport } from "./task.runner"; import Rx = require("rx"); import { SequenceItem } from "./task.sequence.factories"; import { CrossbowReporter } from "./index"; import { WatchCommandEventTypes } from "./command.watch"; export interface WatchEventWithContext { watchEvent: WatchEvent; watcher: Watcher; } export interface WatchEvent { event: string; path: string; watcherUID: string; } export interface WatchTaskReport { taskReport: TaskReport; watchEvent: WatchEvent; count: number; } export interface WatchRunnerComplete { sequence: SequenceItem[]; reports: TaskReport[]; errors: TaskReport[]; watchEvent: WatchEvent; runtime: number; } /** * Create a stream that is the combination of all watchers */ export declare function createObservablesForWatchers(watchers: Watcher[], trigger: CommandTrigger): Rx.Observable<{ type: WatchCommandEventTypes; data: WatchTaskReport | WatchRunnerComplete; }>; /** * Create a file-system watcher that will emit */ export declare function createObservableForWatcher(watcher: Watcher, trigger: CommandTrigger): Rx.Observable; export declare function getFileChangeStream(watcher: Watcher, reporter: CrossbowReporter): Rx.Observable;