import { Subject } from "rxjs"; export declare type EventType = string; export declare namespace EventMetadata { interface SubjectInfo { subject: Subject; } type PropertySubjectMap = Map; type MetadataMap = Map; const EventMapSymbol: symbol; /** @description Gets the metadata map object for the given target class (or its inheritted classes). */ function GetMetadataMap(target: Object): MetadataMap; /** @description Gets the metadata map object for the given target class. */ function GetOwnMetadataMap(target: Object): MetadataMap; /** @description * Gets the property subject map for the given event type from the metadata map for the given target class (or its inheritted classes). */ function GetPropertySubjectMap(type: EventType, target: Object): PropertySubjectMap; /** @description * Gets the property subject map for the given event type from the metadata map for the given target class. */ function GetOwnPropertySubjectMap(type: EventType, target: Object): PropertySubjectMap; function HasOwnMetadataMap(target: Object): boolean; function SetMetadataMap(target: Object, map: MetadataMap): void; /** @description Copy all metadata from the source map to the target map. * * Note: This mutates the target map. **/ function CopyMetadata(target: MetadataMap, source: MetadataMap, overwrite?: boolean): MetadataMap; /** @description Merge own and inheritted metadata into a single map. * * Note: This mutates the object's metadata. **/ function CopyInherittedMetadata(object: any): MetadataMap; }