import { coreTokens, PluginCreator } from '.';
import { Injector, OptionsContext, PluginKind } from 'stryker-api/plugin';
import { StrykerOptions } from 'stryker-api/core';
import { Reporter } from 'stryker-api/report';
import { TestFramework } from 'stryker-api/test_framework';
import Timer from '../utils/Timer';
export interface MainContext extends OptionsContext {
    [coreTokens.reporter]: Required<Reporter>;
    [coreTokens.testFramework]: TestFramework | null;
    [coreTokens.pluginCreatorReporter]: PluginCreator<PluginKind.Reporter>;
    [coreTokens.pluginCreatorConfigEditor]: PluginCreator<PluginKind.ConfigEditor>;
    [coreTokens.pluginCreatorMutator]: PluginCreator<PluginKind.Mutator>;
    [coreTokens.pluginCreatorTestFramework]: PluginCreator<PluginKind.TestFramework>;
    [coreTokens.timer]: Timer;
}
export declare function buildMainInjector(cliOptions: Partial<StrykerOptions>): Injector<MainContext>;
//# sourceMappingURL=buildMainInjector.d.ts.map