import type { IFileSystem } from "../../types"; import { FileHasher } from "./file-hasher"; export type ModuleChangeListener = (moduleId: string) => void; export type FileChangeListener = (filePath: string) => void; export declare class FileWatcher { private fs; private hasher; private filesHash; private listeners; private excludedDirs; private watchers; private watchedDirs; private watchedFiles; constructor(fs: IFileSystem, hasher?: FileHasher); onModuleChanged(listener: ModuleChangeListener): void; scanModule(moduleId: string, rootDir: string, watchDirs?: string[]): Promise; watchFile(filePath: string, listener: FileChangeListener): Promise; startWatching(): void; stopWatching(): void; handleFileChange(filePath: string): Promise; private handleWatchedFileChange; private exploreDir; private notifyModuleChange; private isExcludedPath; }