import { Cascade, LoadStrategy } from '../enums'; import { EntityName, AnyEntity, Constructor } from '../typings'; import { Type } from '../types'; export declare function Property(options?: PropertyOptions): (target: AnyEntity, propertyName: string) => any; export declare type PropertyOptions = { name?: string; fieldName?: string; fieldNames?: string[]; customType?: Type; columnType?: string; type?: 'string' | 'number' | 'boolean' | 'bigint' | 'ObjectId' | string | unknown | bigint | Date | Constructor> | Type; length?: number; onCreate?: (entity: T) => any; onUpdate?: (entity: T) => any; default?: string | number | boolean | null; defaultRaw?: string; formula?: string | ((alias: string) => string); nullable?: boolean; unsigned?: boolean; persist?: boolean; hidden?: boolean; version?: boolean; index?: boolean | string; unique?: boolean | string; lazy?: boolean; primary?: boolean; serializedPrimaryKey?: boolean; serializer?: (value: any) => any; serializedName?: string; comment?: string; }; export interface ReferenceOptions extends PropertyOptions { entity?: string | (() => EntityName); cascade?: Cascade[]; eager?: boolean; strategy?: LoadStrategy; }