export declare class ReflectTool { static getOwnMetadata(metadataKey: any, target: Object, key?: string | symbol): T | undefined; static getMetadata(metadataKey: any, target: Object, key?: string | symbol): T | undefined; static defineMetadata(metadataKey: any, metadataValue: T, target: Object, key?: string | symbol): void; private static transformMetadata; static createClassDecorator(metadataKey: any, metadata: T | ((target: Function) => T)): ClassDecorator; static createPropertyDecorator(metadataKey: any, metadata: T | ((target: Object, key: string | symbol) => T)): PropertyDecorator; static createMethodDecorator(metadataKey: any, metadata: T | ((target: Object, key: string | symbol, descriptor: PropertyDescriptor) => T)): MethodDecorator; static createParamDecorator(metadataKey: any, metadata: T | ((target: Object, key: string | symbol, paramIndex: number) => T)): ParameterDecorator; static createMixedDecorator(metadataKey: any, metadata: T | ((target: Object, key?: string | symbol, descriptor?: PropertyDescriptor) => T)): (target: any, key?: string | symbol, descriptor?: PropertyDescriptor) => any; static getOwnDecoratedKeys(target: Object): string[]; static getOwnDecoratedFunctionKeys(target: Object): string[]; static getOwnDecoratedProperties(target: Object): string[]; private static recordProperty; }