import * as chokidar from 'chokidar';
import type { FsEvent, FileInfo } from '../types';
export declare class Fs {
    #private;
    cwd: string;
    ignored: string[];
    /**
     * Map of files to their details
     */
    protected filesList: Map<string, FileInfo>;
    protected watcher: Promise<chokidar.FSWatcher>;
    constructor(cwd: string, ignored?: string[]);
    get ready(): Promise<boolean>;
    getFileInfo(relativePath: string): FileInfo | undefined;
    watch(cb: (events: FsEvent[]) => Promise<void> | void): void;
    dispose(): Promise<void>;
    exists(file: string): boolean;
    read(file: string, encoding?: BufferEncoding): Promise<string>;
    scan(pattern?: RegExp): FileInfo[];
    emitCodeUpdated(): void;
    addVirtualFile(relativePath: string, sourceFileInfo: FileInfo): void;
    getPatternScanHash(pattern?: RegExp): string | undefined;
    protected emit: (event: FsEvent) => void;
}
//# sourceMappingURL=fs.d.ts.map