import 'reflect-metadata'; export declare class NamespacedReflect { private namespace; /** * @param namespace : namespace to bind this reflect context */ constructor(namespace?: string); private getMetadataKey(metadataKey); /** * define metadata for a target class or it's property/method */ defineMetadata(metadataKey: string, metadataValue: any, target: Object, propertyKey?: string | symbol): void; /** * lookup metadata from a target object and its prototype chain */ getMetadata(metadataKey: string, target: Object, propertyKey?: string | symbol): any; /** * get own metadata for a target object or it's property/method */ getOwnMetadata(metadataKey: string, target: Object, propertyKey?: string | symbol): any; /** * Check if the target has corresponding metadata * @param metadataKey Key * @param target Target * @param propertyKey Optional property key */ hasMetadata(metadataKey: string, target: Object, propertyKey?: string | symbol): boolean; hasOwnMetadata(metadataKey: string, target: Object, propertyKey?: string | symbol): boolean; deleteMetadata(metadataKey: string, target: Object, propertyKey?: string | symbol): boolean; getMetadataKeys(target: Object, propertyKey?: string | symbol): string[]; getOwnMetadataKeys(target: Object, propertyKey?: string | symbol): string[]; decorate(decorators: (PropertyDecorator | MethodDecorator)[] | ClassDecorator[], target: Object, targetKey?: string | symbol, descriptor?: PropertyDescriptor): PropertyDescriptor; metadata(metadataKey: string, metadataValue: any): { (target: Function): void; (target: Object, targetKey: string | symbol): void; }; } export declare const Reflector: NamespacedReflect;