declare function buildArrayMetadataWithArray(newArrayMetadata: Iterable): (arrayMetadata: T[]) => T[]; declare function buildArrayMetadataWithElement(newMetadata: T): (arrayMetadata: T[]) => T[]; declare function buildArrayMetadataWithIndex(newMetadata: T, index: number): (arrayMetadata: T[]) => T[]; declare function buildEmptyArrayMetadata(): T[]; declare function buildEmptyMapMetadata(): Map; declare function buildEmptySetMetadata(): Set; declare function getOwnReflectMetadata(target: object, metadataKey: unknown, propertyKey?: string | symbol): TMetadata | undefined; declare function getReflectMetadata(target: object, metadataKey: unknown, propertyKey?: string | symbol): TMetadata | undefined; declare function setReflectMetadata(target: object, metadataKey: unknown, metadata: unknown, propertyKey?: string | symbol): void; declare function updateOwnReflectMetadata(target: object, metadataKey: unknown, buildDefaultValue: () => TMetadata, callback: (metadata: TMetadata) => TMetadata, propertyKey?: string | symbol): void; declare function updateReflectMetadata(target: object, metadataKey: unknown, buildDefaultValue: () => TMetadata, callback: (metadata: TMetadata) => TMetadata, propertyKey?: string | symbol): void; declare function updateSetMetadataWithList(metadataList: Iterable): (setMetadata: Set) => Set; export { buildArrayMetadataWithArray, buildArrayMetadataWithElement, buildArrayMetadataWithIndex, buildEmptyArrayMetadata, buildEmptyMapMetadata, buildEmptySetMetadata, getOwnReflectMetadata, getReflectMetadata, setReflectMetadata, updateOwnReflectMetadata, updateReflectMetadata, updateSetMetadataWithList };