import 'reflect-metadata'; import { ClassConstructor } from '../../types'; /** * Creates a property decorator that stores metadata without making the property readonly @template MetadataType - The type of the metadata @template PropertyKeyType - The type of the property key * @param metadataKey - The key to store the metadata under @param metadata - The metadata to store, or a function that returns the metadata * @returns PropertyDecorator */ export declare function buildPropertyDecorator(metadataKey: any, /** Retrieves the metadata for a property @param {Object} target - The class constructor @param {PropertyKeyType} propertyKey - The property key @param {MetadataType} existingMetaData - The existing metadata for the property @param {Record} allExistingMetadata - All existing metadata for the class @returns {MetadataType} The metadata for the property */ metadata: ((existingMetaData: MetadataType, allExistingMetadata: Record, target: object, propertyKey: MetadataPropertyKey) => MetadataType) | MetadataType): PropertyDecorator; /** * Retrieves all properties of a class that have been decorated with a specific metadata key. @template MetaDataType - The type of the metadata @template PropertyKeyType - The type of the property key * @param target The class to retrieve decorated properties from. * @param metadataKey The metadata key. * @returns Record of property names and their metadata */ export declare function getDecoratedProperties(target: ClassConstructor, metadataKey: any): Record; /** * Retrieves metadata for a specific property. * @template MetaDataType - The type of the metadata * @param target - target The class or object containing the property. * @param metadataKey - The key to retrieve metadata for *@param propertyKey - The name of the propertyfor which metadata is being retrieved. * @returns {MetaDataType} The metadata value for the property. */ export declare function getDecoratedProperty(target: ClassConstructor, metadataKey: MetadataPropertyKey, propertyKey: MetadataPropertyKey): MetaDataType; type MetadataPropertyKey = string | symbol | number; export {};