import { TaskRunModes } from "./task.resolve"; import { LogLevel } from "./reporters/defaultReporter"; import { OutgoingReport } from "./reporter.resolve"; import { InitConfigFileTypes } from "./command.init"; import { WatchEvent } from "./watch.file-watcher"; import { ExternalFile } from "./file.utils"; import Rx = require("rx"); export declare enum SignalTypes { Exit, FileWrite, } export interface CBSignal { type: SignalTypes; data?: T; } export declare type OutgoingSignals = Rx.Subject>; export interface ExitSignal { code: number; } export interface FileWriteSignal { file: ExternalFile; content: string; } export interface CrossbowConfiguration { cwd: string; runMode: TaskRunModes; verbose: LogLevel; parallel: boolean; fail: boolean; force: boolean; reporter: string; handoff: boolean; input: 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; skip: string[]; tasksDir: string[]; nodeModulesPaths: string[]; block?: boolean; debounce?: boolean; throttle?: boolean; fromJson?: string; file?: string; output?: string; dryRun?: boolean; dryRunDuration?: number; outputObserver?: Rx.Observable; fileChangeObserver?: Rx.Observable; signalObserver?: OutgoingSignals; scheduler?: Rx.IScheduler; } /** * Merge default with incoming opts. * Also deal with single char flag * @returns {*} */ export declare function merge(opts: CrossbowConfiguration | any): CrossbowConfiguration;