import { Controller } from '@nestjs/common/interfaces/controllers/controller.interface'; import { Injectable } from '@nestjs/common/interfaces/injectable.interface'; import { Type } from '@nestjs/common/interfaces/type.interface'; import { ContextId, InstancePerContext, InstanceWrapper, PropertyMetadata } from './instance-wrapper'; import { Module } from './module'; /** * The type of an injectable dependency */ export declare type InjectorDependency = Type | Function | string | symbol; /** * The property-based dependency */ export interface PropertyDependency { key: string; name: InjectorDependency; isOptional?: boolean; instance?: any; } /** * Context of a dependency which gets injected by * the injector */ export interface InjectorDependencyContext { /** * The name of the property key (property-based injection) */ key?: string | symbol; /** * The name of the function or injection token */ name?: string | symbol; /** * The index of the dependency which gets injected * from the dependencies array */ index?: number; /** * The dependency array which gets injected */ dependencies?: InjectorDependency[]; } export declare class Injector { loadMiddleware(wrapper: InstanceWrapper, collection: Map, module: Module, contextId?: ContextId, inquirer?: InstanceWrapper): Promise; loadController(wrapper: InstanceWrapper, module: Module, contextId?: ContextId): Promise; loadInjectable(wrapper: InstanceWrapper, module: Module, contextId?: ContextId, inquirer?: InstanceWrapper): Promise; loadProvider(wrapper: InstanceWrapper, module: Module, contextId?: ContextId, inquirer?: InstanceWrapper): Promise; loadPrototype({ name }: InstanceWrapper, collection: Map>, contextId?: ContextId): void; applyDoneHook(wrapper: InstancePerContext): () => void; loadInstance(wrapper: InstanceWrapper, collection: Map, module: Module, contextId?: ContextId, inquirer?: InstanceWrapper): Promise; resolveConstructorParams(wrapper: InstanceWrapper, module: Module, inject: InjectorDependency[], callback: (args: unknown[]) => void, contextId?: ContextId, inquirer?: InstanceWrapper, parentInquirer?: InstanceWrapper): Promise; reflectConstructorParams(type: Type): any[]; reflectOptionalParams(type: Type): any[]; reflectSelfParams(type: Type): any[]; resolveSingleParam(wrapper: InstanceWrapper, param: Type | string | symbol | any, dependencyContext: InjectorDependencyContext, module: Module, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: string | number): Promise>; resolveParamToken(wrapper: InstanceWrapper, param: Type | string | symbol | any): any; resolveComponentInstance(module: Module, name: any, dependencyContext: InjectorDependencyContext, wrapper: InstanceWrapper, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: string | number): Promise; resolveComponentHost(module: Module, instanceWrapper: InstanceWrapper, contextId?: ContextId, inquirer?: InstanceWrapper): Promise; lookupComponent(providers: Map, module: Module, dependencyContext: InjectorDependencyContext, wrapper: InstanceWrapper, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: string | number): Promise>; lookupComponentInParentModules(dependencyContext: InjectorDependencyContext, module: Module, wrapper: InstanceWrapper, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: string | number): Promise; lookupComponentInImports(module: Module, name: any, wrapper: InstanceWrapper, moduleRegistry?: any[], contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: string | number, isTraversing?: boolean): Promise; resolveProperties(wrapper: InstanceWrapper, module: Module, inject?: InjectorDependency[], contextId?: ContextId, inquirer?: InstanceWrapper, parentInquirer?: InstanceWrapper): Promise; reflectProperties(type: Type): PropertyDependency[]; applyProperties(instance: T, properties: PropertyDependency[]): void; instantiateClass(instances: any[], wrapper: InstanceWrapper, targetMetatype: InstanceWrapper, contextId?: ContextId, inquirer?: InstanceWrapper): Promise; loadPerContext(instance: T, module: Module, collection: Map, ctx: ContextId, wrapper?: InstanceWrapper): Promise; loadEnhancersPerContext(wrapper: InstanceWrapper, ctx: ContextId, inquirer?: InstanceWrapper): Promise; loadCtorMetadata(metadata: InstanceWrapper[], contextId: ContextId, inquirer?: InstanceWrapper, parentInquirer?: InstanceWrapper): Promise; loadPropertiesMetadata(metadata: PropertyMetadata[], contextId: ContextId, inquirer?: InstanceWrapper): Promise; private getInquirerId; private resolveScopedComponentHost; private isInquirerRequest; private isInquirer; private addDependencyMetadata; }