import { Disposable } from '@dandi/common'; import { InjectionScope, InjectionToken, Injector, InjectorContextConstructor, InstanceGenerator, InstanceGeneratorFactory, InstanceInvokableFn, MultiInjectionToken, Registerable, ResolvedProvider, SingleInjectionToken } from '@dandi/core/types'; import { DandiInjectorContext } from './dandi-injector-context'; /** * @internal */ export declare class DandiInjector implements Injector, Disposable { readonly parent: DandiInjector; protected readonly scope: InjectionScope; private readonly generatorFactory; protected readonly injectorContextConstructor: InjectorContextConstructor; readonly context: DandiInjectorContext; protected generator: InstanceGenerator; protected readonly generatorReady: Promise; private readonly children; protected constructor(parent: DandiInjector, scope: InjectionScope, generatorFactory: InstanceGeneratorFactory, injectorContextConstructor: InjectorContextConstructor, providers: Registerable[]); canResolve(token: InjectionToken): boolean; resolve(token: InjectionToken, optional?: boolean): ResolvedProvider; inject(token: MultiInjectionToken): Promise; inject(token: SingleInjectionToken, optional?: boolean): Promise; inject(token: InjectionToken, optional?: boolean): Promise; invoke(instance: TInstance, methodName: InstanceInvokableFn, ...providers: Registerable[]): Promise; dispose(reason: string): Promise; createChild(scope: InjectionScope, providers?: Registerable[]): DandiInjector; protected invokeInternal(instance: TInstance, methodName: InstanceInvokableFn): Promise; private initGeneratorFactory; private parseAndValidateArgs; private validateScope; private resolveInternal; private validateResolution; private generateInstance; } //# sourceMappingURL=dandi-injector.d.ts.map