import { DandiApplication, InjectionScope, InjectionToken, Injector, Invoker, Provider, Registerable, Resolver } from '@dandi/core'; import { SinonStubbedInstance } from 'sinon'; export interface TestInjector extends Resolver, Invoker { readonly injector: Injector; inject(token: InjectionToken, optional?: boolean): Promise; injectMulti(token: InjectionToken, optional?: boolean): Promise; injectStub(token: InjectionToken, optional?: boolean): Promise>; injectMultiStub(token: InjectionToken, optional?: boolean): Promise[]>; createChild(scope: InjectionScope, ...providers: Registerable[]): TestInjector; } export interface RootTestInjector extends TestInjector { readonly application: DandiApplication; register(...providers: Registerable[]): this; } export declare class TestInjectorBase implements TestInjector { protected _injector: Injector; protected readonly stubMissing: boolean; get injector(): Injector; constructor(_injector: Injector, stubMissing?: boolean); canResolve(): boolean; createChild(scope: InjectionScope, ...providers: Registerable[]): TestInjector; inject(token: InjectionToken, optional?: boolean): Promise; injectMulti(token: InjectionToken, optional?: boolean): Promise; injectStub(token: InjectionToken, optional?: boolean): Promise>; injectMultiStub(token: InjectionToken, optional?: boolean): Promise[]>; invoke(): Promise; resolve(): Provider | Set>; protected bindInjector(): void; } //# sourceMappingURL=test-injector.d.ts.map