import { DateTime$1 as DateTime, UUID$1 as UUID } from "./refined.types-Y15bJPl9.js"; //#region src/domain/base.entity.d.ts interface IEntity { readonly id: UUID; readonly createdAt: DateTime; readonly updatedAt: DateTime; } interface SerializedEntity { readonly id: string; readonly createdAt: Date; readonly updatedAt: Date; } type IEntityForUpdate = Pick; declare abstract class BaseEntity implements IEntity { #private; protected constructor(); get id(): UUID; get createdAt(): DateTime; get updatedAt(): DateTime; protected markUpdated(): void; protected forUpdate(): IEntityForUpdate; protected _copyBaseProps(other: IEntity): void; protected _fromSerialized(other: Readonly): this; protected _serialize(): SerializedEntity; abstract serialize(): any; } type SimpleSerialized = SerializedEntity & Omit; //#endregion //# sourceMappingURL=base.entity.d.ts.map export { BaseEntity as BaseEntity$1, IEntity, IEntityForUpdate, SerializedEntity, SimpleSerialized }; //# sourceMappingURL=base.entity-D5Fatc80.d.ts.map