import { AnyObj } from '#types/mix.js'; import { Class, DecoratorAndValue, ParamsMeta, ClassMeta, ClassPropMeta } from './types-and-models.js'; /** * Determine whether a stringified type is a class which delegates its constructor * to its parent. * * This is not trivial since compiled code can actually contain a constructor function * even if the original source code did not. For instance, when the child class contains * an initialized instance property. */ export declare function isDelegateCtor(typeStr: string): boolean; export declare class Reflector { private reflect; constructor(reflect?: typeof Reflect); /** * Returns an object with all the metadata for the passed class. * This object implements [The iterable protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol). * * @param Cls A class that has decorators. */ getMetadata(Cls: Class): ClassMeta | undefined; /** * Returns the metadata for the constructor or methods of the passed class. * * @param Cls A class that has decorators. */ getMetadata(Cls: Class, propertyKey?: string | symbol): ClassPropMeta | undefined; protected getClassMetaOrParamsMeta(Cls: Class, classMeta: ClassMeta | undefined, propertyKey?: string | symbol): ClassMeta | ClassPropMeta | undefined; protected concatWithParentClassMeta(Cls: Class, classMeta: ClassMeta): void; protected concatWithOwnClassMeta(Cls: Class, classMeta: ClassMeta): ClassMeta | undefined; protected concatWithParamsMeta(Cls: Class, classMeta: ClassMeta, ownMetaKeys: (string | symbol)[]): ClassMeta | undefined; protected setMetaCache(Cls: Class, key: string | symbol, classMeta?: ClassMeta): void; protected getOwnCacheMetadata(Cls: any): ClassMeta | null | undefined; /** * Returns the metadata for passed class. * * @param Cls A class that has decorators. */ protected getClassMetadata(Cls: Class): DecoratorAndValue[]; /** * Returns the metadata for the constructor or methods of the passed class. * * @param Cls A class that has decorators. * @param propertyKey If this method is called without `propertyKey`, * it's returns parameters of class constructor. */ protected getParamsMetadata(Cls: Class, propertyKey?: Exclude): (ParamsMeta | null)[]; protected getParentClass(ctor: Class): Class; protected mergeTypesAndClassMeta(paramTypes: any[], paramMetadata: any[]): ParamsMeta[]; protected getOwnParams(Cls: Class, propertyKey?: string | symbol): ParamsMeta[] | null[]; protected getOwnClassAnnotations(Cls: Class): any[] | null; protected getOwnPropMetadata(Cls: any): { [key: string | symbol]: any[]; } | null; } //# sourceMappingURL=reflector.d.ts.map