import MetadataContainer from "./metadata_container"; /** Used to access serializable type metadata */ export default class MetadataManager { private readonly backend; private readonly projection; /** NOTE: Constructable via `get` factory method */ private constructor(); private static key; /** Cache for manager instances */ private static instances; /** * Get metadata manager instance * @param backend Serialization backend * @param projection Serialization projection */ static get(backend: string, projection: string): MetadataManager; /** Set own metadata */ setOwnMetaFor(proto: Object, metadata: MetadataContainer): void; /** Get own metadata */ getOwnMetaFor(proto: Object): MetadataContainer; /** Get own or inherited metadata */ getMetaFor(proto: Object): MetadataContainer; /** Seek prototype chain for inherited metadata */ seekInheritedMetaFor(proto: Object): MetadataContainer; /** Get or create a metadata container */ getOrCreateMetaFor(proto: Object): MetadataContainer; }