import { Injector } from './injector'; import { Type, InjectionToken, Provider, Token } from './type'; export declare class Test { private readonly TestModule; static createTestingModule(overrideConfig?: { TestModule?: Type; providers?: Provider[]; }): Test; readonly providersMap: Map, Provider>; private constructor(); overrideProvider(token: Token): MockProvider; compile(): M; } export declare class MockProvider { private readonly test; private readonly token; constructor(test: Test, token: Type | InjectionToken); useClass(value: Type): Test; useValue(value: T): Test; useFactory(value: (...args: any[]) => any): Test; } export declare abstract class AbstractTestModule { abstract getInstance(provider: Provider): T; } export declare class TestModule implements AbstractTestModule { private readonly injector; constructor(injector: Injector); getInstance(token: Provider): T; }