import binding from '@rspack/binding'; import type Watchpack from '../compiled/watchpack/index.js'; import type { FileSystemInfoEntry, InputFileSystem, Watcher, WatchFileSystem } from './util/fs.js'; export default class NativeWatchFileSystem implements WatchFileSystem { #private; constructor(inputFileSystem: InputFileSystem); watch(files: Iterable & { added?: Iterable; removed?: Iterable; }, directories: Iterable & { added?: Iterable; removed?: Iterable; }, missing: Iterable & { added?: Iterable; removed?: Iterable; }, startTime: number, options: Watchpack.WatchOptions, callback: (error: Error | null, fileTimeInfoEntries: Map, contextTimeInfoEntries: Map, changedFiles: Set, removedFiles: Set) => void, callbackUndelayed: (fileName: string, changeTime: number) => void): Watcher; getNativeWatcher(options: Watchpack.WatchOptions): binding.NativeWatcher; triggerEvent(kind: 'change' | 'remove' | 'create', path: string): void; formatWatchDependencies(dependencies: Iterable & { added?: Iterable; removed?: Iterable; }): [string[], string[]]; }