import { Class } from '@midway3-components/core'; import { Column as DrizzleColumn, SQL } from 'drizzle-orm'; import { Drizzle } from '../drizzle'; import type { From, JoinType } from '../query'; import { OnLoadCallback } from './onLoad'; type Join = { type?: JoinType; from: From; on: SQL; }; type BaseEntity = object; export type EntityClass = Class; export type EntityOptions = { joins?: Join[]; onLoad?: OnLoadCallback; dataSource?: Drizzle | string; }; type EntityMeta = { from: From; options?: EntityOptions; }; export declare function Entity(from: From, options?: EntityOptions): ClassDecorator; export declare function isEntityClass(clz: Class): boolean; export declare function getEntityMeta(clz: Class): EntityMeta | null; type ReadValue = (val: any, key: string | symbol, entity: T) => unknown; export type ColumnOptions = { nullValue?: unknown; readValue?: ReadValue; }; type ColumnMeta = { column: EntityColumn; propertyKey: string; options?: ColumnOptions; }; type EntityColumn = DrizzleColumn | SQL; export declare function Column(column: EntityColumn, options?: ColumnOptions): PropertyDecorator; export declare function Column(column: EntityColumn, readValue: ReadValue): PropertyDecorator; export declare function getColumnsMeta(clz: Class): ColumnMeta[]; export declare function getEntityDefinition(clz: Class): { columns: ColumnMeta[]; from: From; options?: EntityOptions; }; export {}; //# sourceMappingURL=entity.d.ts.map