///
import { EventEmitter } from 'events';
interface WatchFileSystemOptions {
aggregateTimeout: number;
poll: boolean;
followSymlinks: boolean;
ignored: string | RegExp | Function | (string | RegExp | Function)[];
}
interface Watchpack extends EventEmitter {
_onChange(item: string, mtime: number, file: string, type?: string): void;
_onRemove(item: string, file: string, type?: string): void;
}
interface WatcherV4 {
close(): void;
pause(): void;
getFileTimestamps(): Map;
getContextTimestamps(): Map;
}
interface WatcherV5 {
close(): void;
pause(): void;
getFileTimeInfoEntries(): Map;
getContextTimeInfoEntries(): Map;
}
declare type Watcher = WatcherV4 | WatcherV5;
interface WatchFileSystem {
watcher: Watchpack;
wfs?: {
watcher: Watchpack;
};
watch(files: Iterable, dirs: Iterable, missing: Iterable, startTime?: number, options?: Partial, callback?: Function, callbackUndelayed?: Function): Watcher;
}
export { WatchFileSystem, WatchFileSystemOptions, Watchpack, WatcherV4, WatcherV5, Watcher };