export interface IValueObject { get value(): T; equals(vo?: IValueObject): boolean; } /** * A small immutable object whose equality is not based on identity but purely on its attributes. * * ## Rules * - Value objects are immutable; * - Value objects can reference other objects; * * ## Notes: * - Value objects can/should hold validation for their data. When we have validation rules. */ export declare abstract class ValueObject implements IValueObject { protected readonly _data: T; constructor(props: T); equals(vo?: ValueObject): boolean; get value(): T; } //# sourceMappingURL=value-object.d.ts.map