import { EntityType, IEntity } from "./entity.type"; import { EntityMetadata } from "./entity-metadata"; import { Children, Collection, Reference } from "./navigations"; import { Primitive, DateTime, Complex, Instance } from "./locals"; /** * Define a class as a type of entity, describing all its cacheable, loadable and saveable properties. * * Property metadata can be defined by: * * using property decorators (e.g. @Property.PrimaryKey(), @Property.Reference()) * * passing constructor arguments via this decorator * * Each entity type must have a primary key defined, and names/aliases must be unique across all properties. */ export declare function EntityClass(args?: Partial): (type: EntityType) => void; export declare function getEntityMetadata(type: string | EntityType | Function): EntityMetadata; export declare function isEntity(type: string | EntityType): boolean; export declare class Property { static Id(args?: Primitive.CtorArgs): (type: Object, key: string, descriptor?: TypedPropertyDescriptor) => void; static Primitive(args?: Primitive.CtorArgs): (type: Object, key: string, descriptor?: TypedPropertyDescriptor) => void; static Key(args?: Primitive.CtorArgs): (type: Object, key: string, descriptor?: TypedPropertyDescriptor) => void; static Date(args?: DateTime.CtorArgs): (type: Object, key: string, descriptor?: TypedPropertyDescriptor) => void; static Complex(args?: Complex.CtorArgs): (type: Object, key: string, descriptor?: TypedPropertyDescriptor) => void; static Instance(args?: Instance.CtorArgs): (type: Object, key: string, descriptor?: TypedPropertyDescriptor) => void; static Reference(args: Reference.CtorArgs): (type: Object, key: string, descriptor?: TypedPropertyDescriptor) => void; static Children(args: Children.CtorArgs): (type: Object, key: string, descriptor?: TypedPropertyDescriptor) => void; static Collection(args: Collection.CtorArgs): (type: Object, key: string, descriptor?: TypedPropertyDescriptor) => void; }