/// <reference types="node" />
import { FSWatcher, WatchOptions } from 'chokidar';
import { ContextResource, FileResource, DirectorResource, EDirectorState } from '../resource';
import fs from 'fs';
export declare class FileWatcher {
    defaultOptions: WatchOptions;
    watcher: FSWatcher;
    context: ContextResource;
    ready: boolean;
    onUpdate: (changeFilesMap: Map<FileResource, FileResource>) => Promise<any>;
    onUpdateDir: (changeDirsMap: Map<DirectorResource, DirectorResource>) => Promise<any>;
    constructor(options: WatchOptions, context: ContextResource, onUpdate: (changeFilesMap: Map<FileResource, FileResource>) => Promise<any>, onUpdateDir: (changeDirsMap: Map<DirectorResource, DirectorResource>) => Promise<any>);
    initialFileWatch(options: WatchOptions, context: ContextResource): void;
    handlerChangeContent(changePath: string, stats: fs.Stats): Promise<void>;
    handlerAddFile(filePath: string): Promise<void>;
    handlerUnlinkFile(filePath: string): Promise<void>;
    handlerAddDir(dirPath: string): Promise<void>;
    handlerUnlinkDir(dirPath: string): Promise<void>;
    getUpdateFile(changes: string): Map<FileResource, FileResource>;
    getUpdateDir(changeDirPath: string, state: EDirectorState): Map<DirectorResource, DirectorResource>;
    checkModifyTranslateTargetFile(changePath: string): string;
}
