import { ClassType } from "../type"; import { TypeMetadataInternal } from "./data/TypeMetadataInternal"; import { TypeMetadata } from "./data/TypeMetadata"; /** * Internal metadata provider that should be used only within metadata package */ export declare const metadataInternal: { /** * Retrieve some type metadata. * This should not be used from outside of metadata package! * @param type * @returns {TypeMetadataInternal} */ getTypeDescriptor: (type: ClassType) => TypeMetadataInternal; }; /** * Public data provider for registered type metadata */ export declare const metadata: { /** * Check if particular type has registered metadata * @param type * @returns {boolean} */ hasMetadata: (type: ClassType) => boolean; /** * Retrieve some type metadataInternal * @param type * @returns {TypeMetadataInternal} */ getTypeDescriptor: (type: ClassType) => TypeMetadata; /** * 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[]; };