import { Data } from "@edgefirst-dev/data"; import { ObjectParser } from "@edgefirst-dev/data/parser"; import type { Table } from "drizzle-orm"; /** * An entity represents a single object in the domain model. * * Most entities are backed by a database table, but some entities may be * transient and not persisted to the database, or may be backed by a different * kind of data store. */ export declare abstract class Entity extends Data { toString(): string; } /** * A table entity represents a single row in a database table. * * Table entities are backed by a database table, and are typically used to * represent domain objects that are persisted to the database. */ export declare abstract class TableEntity extends Entity { static from(this: new (parser: ObjectParser) => M, data: T["$inferSelect"]): M; static fromMany(this: new (parser: ObjectParser) => M, data: T["$inferSelect"][]): M[]; get id(): import("../parsers/string-parser.js").CUID; get createdAt(): Date; get updatedAt(): Date; toString(): string; }