import { ModuleConfig } from "./ModuleConfig"; import { ConstructorArg } from "./ConstructorArg"; import { PropertyInjection } from "./PropertyInjection"; import { TypeMetadataInternal } from "./TypeMetadataInternal"; /** * Describes some type metadata. */ export declare class TypeMetadata { /** * List of type constructor arguments data types */ readonly constructorArguments: ReadonlyArray; /** * List of injected properties configuration this type expects. */ readonly propertyInjections: ReadonlyArray; /** * List of method names that should be invoked as new instance of type is created and all injection points have * got values. */ readonly postConstructMethods: ReadonlyArray; /** * List of method names that should be invoked as Injected properties are applied to new created class. */ readonly preDestroyMethods: ReadonlyArray; /** * Module descriptor object that marks type as a module and defines properties of a module entry. */ readonly moduleDescriptor: ModuleConfig; /** * Create new instance * @param typeMeta Type of class prototype this instance holds metadata for */ constructor({ constructorArguments, optionalConstructorArguments, propertyInjections, optionalPropertyInjections, postConstructMethods, preDestroyMethods, moduleDescriptor }: TypeMetadataInternal); }