import { Serializable } from '@/data-helpers/Serializable'; import { Class, ValueObjectType } from '@/utils/types'; import { ValueObjectDeserializationMapper } from './types'; export declare abstract class ValueObject implements Serializable { readonly value: T; constructor(value: T); /** * Factory method to create the instance of the value object * * @param value */ static from = ValueObject>(this: Class, value: Type): K; static fromObject = ValueObject>(this: Class, data: { value?: unknown; [key: string]: unknown; }): K; private static mapObjectValue; static deserialize = ValueObject>(this: Class, value: string, mapper?: ValueObjectDeserializationMapper): K; /** * Validate the input for invariance check * * @throws {ValueObjectCanNotBeNullException} */ validate(): void; toJSON(): object; toString(): string; }