/// <reference types="node" resolution-mode="require"/>
import { PathLike } from 'fs';
import { FileDescriptions, MutateDescription } from '@stryker-mutator/api/core';
import { I } from '@stryker-mutator/util';
import { FileSystem } from '../../src/fs/index.js';
type Param<TMethod extends keyof I<FileSystem>, n extends number> = Parameters<FileSystem[TMethod]>[n];
/**
 * A test double for the file system.
 * Only supports sync, in-memory, text files.
 */
export declare class FileSystemTestDouble implements I<FileSystem> {
    readonly files: Record<string, string>;
    dirs: Set<string>;
    constructor(files?: Record<string, string>);
    dispose(): Promise<void>;
    readFile(fileName: Param<'readFile', 0>): Promise<any>;
    copyFile(src: Param<'copyFile', 0>, dest: Param<'copyFile', 1>): Promise<void>;
    writeFile(name: Param<'writeFile', 0>, data: Param<'writeFile', 1>): Promise<void>;
    mkdir(path: PathLike): Promise<any>;
    readdir(path: Param<'readdir', 0>, options?: any): Promise<any>;
    private throwNotSupported;
    /**
     * Creates file descriptions for each file in this test double
     */
    toFileDescriptions(mutate?: MutateDescription): FileDescriptions;
}
export {};
//# sourceMappingURL=file-system-test-double.d.ts.map