import ProjectFileSystem from '../commons/ProjectFileSystem'; export type ChangeListener = (event: string, file: string) => any; export type ChangeSetListener = (events: string[], files: string[]) => any; export declare enum EventType { ADD = "add", DELETE = "delete", CHANGED = "changed", DELETE_DIR = "unlinkDir", ADD_DIR = "addDir" } export interface Observer { fs: ProjectFileSystem; basePath: string; pathRelativeToRoot: string; glob: string; isGlob: boolean; globPattern: string; listener: ChangeListener; watchContent?: any; } export interface FileSystemWatchManager { createFileSystemWatcher(fs: ProjectFileSystem, globPatterns: string[], watchContent: any[], onChange: ChangeListener): Observer[]; removeFileSystemWatcher(observers: Observer[]): void; destroy(): void; on(event: 'change', listener: ChangeSetListener): void; removeListener(event: 'change', listener: ChangeSetListener): void; }