/// 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 };