import { Logger } from '@stryker-mutator/api/logging';
import { FileDescriptions } from '@stryker-mutator/api/core';
import { I } from '@stryker-mutator/util';
import { MutationTestResult } from 'mutation-testing-report-schema';
import { FileSystem } from './file-system.js';
import { ProjectFile } from './project-file.js';
/**
 * Represents the project that is under test by Stryker users.
 * This represents the files in the current working directory.
 * Each file can be read into memory when needed (via `readContent`)
 */
export declare class Project {
    readonly fileDescriptions: FileDescriptions;
    readonly incrementalReport?: MutationTestResult | undefined;
    readonly files: Map<string, ProjectFile>;
    readonly filesToMutate: Map<string, ProjectFile>;
    readonly testFiles: readonly string[];
    constructor(fs: I<FileSystem>, fileDescriptions: FileDescriptions, incrementalReport?: MutationTestResult | undefined, testFiles?: readonly string[]);
    get isEmpty(): boolean;
    logFiles(log: Logger, ignoreRules: readonly string[], force: boolean, mutatePatterns: readonly string[], testFilePatterns?: readonly string[]): void;
}
//# sourceMappingURL=project.d.ts.map