import { Logger } from '@stryker-mutator/api/logging';
import { NpmClient } from './npm-client.js';
import { CustomInitializer } from './custom-initializers/custom-initializer.js';
import { StrykerConfigWriter } from './stryker-config-writer.js';
import { StrykerInquirer } from './stryker-inquirer.js';
import { GitignoreWriter } from './gitignore-writer.js';
export declare class StrykerInitializer {
    private readonly log;
    private readonly out;
    private readonly client;
    private readonly customInitializers;
    private readonly configWriter;
    private readonly gitignoreWriter;
    private readonly inquirer;
    static inject: ["logger", "out", "npmClient", "strykerPresets", "configWriter", "gitignoreWriter", "inquirer"];
    constructor(log: Logger, out: typeof console.log, client: NpmClient, customInitializers: CustomInitializer[], configWriter: StrykerConfigWriter, gitignoreWriter: GitignoreWriter, inquirer: StrykerInquirer);
    /**
     * Runs the initializer will prompt the user for questions about his setup. After that, install plugins and configure Stryker.
     * @function
     */
    initialize(): Promise<void>;
    /**
     * The typed rest client works only with the specific HTTP_PROXY and HTTPS_PROXY env settings.
     * Let's make sure they are available.
     */
    private patchProxies;
    private selectCustomInitializer;
    private initiateInitializer;
    private initiateCustom;
    private selectTestRunner;
    private getBuildCommand;
    private selectReporters;
    private selectPackageManager;
    private selectJsonConfigType;
    private getSelectedNpmDependencies;
    /**
     * Install the npm packages
     * @function
     */
    private installNpmDependencies;
    private getInstallCommand;
    private fetchAdditionalConfig;
    private ensureCoreDependencyIncluded;
}
//# sourceMappingURL=stryker-initializer.d.ts.map