import 'reflect-metadata'; /** Metadata stored by the variantOf class decorator. */ export interface VariantOfMetadata { /** The type anchoring the logical identity every variant of this group shares. */ readonly identity: Function; /** The property name on this variant used as its own key, and as the correlation property for reclassified joins. */ readonly key: string; } /** * Class decorator that declares a read model to be one of several mutually exclusive * representations of the same logical entity. Entering one variant removes the entity * from every sibling variant of the same identity. * @param identity - The type anchoring the logical identity shared by every variant. Does not need to be a read model itself. * @param key - The property name on this variant used as its own key. * @returns A class decorator. */ export declare function variantOf(identity: Function, key: string): ClassDecorator; /** * Retrieves variantOf metadata stored on the given class constructor. * @param target - The class constructor. * @returns The variantOf metadata, or undefined if the class is not a variant. */ export declare function getVariantOfMetadata(target: Function): VariantOfMetadata | undefined; //# sourceMappingURL=variantOf.d.ts.map