import Watchpack, { type WatchOptions } from 'watchpack'; import type { Compiler, RspackPluginInstance, WatchFileSystem } from '@rspack/core'; export interface InputFileSystem { readFile: (...args: any[]) => void; readlink: (...args: any[]) => void; readdir: (...args: any[]) => void; stat: (...args: any[]) => void; purge?: (files?: string | string[] | Set) => void; [key: string]: any; } export type WatchCallback = Parameters[5]; export type WatchUndelayedCallback = Parameters[6]; export type Watcher = ReturnType; export type WatcherInfo = ReturnType['getInfo']>; export declare class DeferredWatchFileSystem implements WatchFileSystem { #private; readonly inputFileSystem: InputFileSystem; readonly watcherOptions: WatchOptions; watcher: Watchpack | undefined; constructor(inputFileSystem: InputFileSystem, onChange: () => void); flush(): boolean; watch(files: Iterable, directories: Iterable, missing: Iterable, startTime: number, options: WatchOptions, callback: WatchCallback, callbackUndelayed: WatchUndelayedCallback): Watcher; } export declare class OverrideNodeWatchFSPlugin implements RspackPluginInstance { #private; readonly fileSystems: Set; constructor(onChange: () => void); apply(compiler: Compiler): void; } //# sourceMappingURL=DeferredWatchFileSystem.d.ts.map