/// <reference types="node" />
import { ChildProcess } from 'child_process';
import chokidar from 'chokidar';
import { BitId } from '../../bit-id';
import { Compile } from '../compiler';
import { Workspace } from '../workspace';
import { Consumer } from '../../consumer';
declare type WatcherProcessData = {
    watchProcess: ChildProcess;
    compilerId: BitId;
    componentIds: BitId[];
};
export default class Watch {
    private compile;
    private workspace;
    private trackDirs;
    private verbose;
    private multipleWatchers;
    constructor(compile: Compile, workspace: Workspace, trackDirs?: {
        [dir: string]: string;
    }, verbose?: boolean, multipleWatchers?: WatcherProcessData[]);
    watch(opts: {
        verbose?: boolean;
    }): Promise<void>;
    get consumer(): Consumer;
    watchAll(): Promise<unknown>;
    _handleChange(filePath: string, isNew?: boolean): Promise<void>;
    isComponentWatchedExternally(componentId: BitId): boolean;
    _getBitIdByPathAndReloadConsumer(filePath: string, isNew: boolean): Promise<BitId | null | undefined>;
    _getWatcher(): chokidar.FSWatcher;
    _getPathsToWatch(): string[];
}
export {};
