export default abstract class BaseType { /** * Gets the value */ abstract readonly value: TValue; constructor(value: TSetValue); /** * Is equal to * @param other The other class */ abstract equals(other: TClass): boolean; /** * Validate the class */ protected abstract validate(): void; /** * Sets the value */ protected abstract setValue(value: TSetValue): void; /** * Value not set error */ protected valueNotSetError(): Error; }