import binding from "@rspack/binding"; import type Watchpack from "../compiled/watchpack"; import type { FileSystemInfoEntry, InputFileSystem, Watcher, WatchFileSystem } from "./util/fs"; 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[]]; }