import { ClassType } from "../../type"; import { TypeMetadataInternal } from "../data/TypeMetadataInternal"; import { TypeMetadata } from "../data/TypeMetadata"; /** * Internal class that stores information on registered type metadata */ export declare class MetadataCollection { private rawTypeMetadata; private exportedTypeMetadata; private inheritedMetadata; /** * Get or create internal type metadata object * @param type * @returns {TypeMetadataInternal} */ getOrCreateTypeMetadata(type: ClassType): TypeMetadataInternal; /** * Get type metadata in clean export format * @param type * @throws Error if unre4gistered metadata is requested * @returns {TypeMetadata} */ getTypeMetadataExportFormat(type: ClassType): TypeMetadata; /** * Check if particular type has registered entry * @param type * @returns {boolean} */ typeMetadataIsRegistered(type: ClassType): boolean; /** * Get inherited metadata for some instance (including its own prototype) * @param instance Any class instance that might be inheriting from any of metadata clients * @returns {TypeMetadata[]} A collection of all metadata entries that can be matched with instance */ getInheritedMetadata(instance: any): TypeMetadata[]; }