import { Object } from "./Object"; /** * A value object's properties representation: a simple object. */ interface ValueObjectProps { [key: string]: any; } /** * A value object's representation. * * Value objects are objects that matter only as the combination of their attributes. * Two value objects with the same values for all their attributes are considered equal. * * Example: * * ```typescript * class Address extends ValueObject<{ street: string; streetNumber: string }> { * } * * const address = new Address({ street: 'Street A' }) * ``` * * @typeParam T The properties of this value object */ export declare abstract class ValueObject implements Object { props: T; constructor(props: T); equals(vo?: ValueObject): boolean; } export {};