import EntityType from "@entity-access/entity-access/dist/entity-query/EntityType.js"; import { IClassOf } from "@entity-access/entity-access/dist/decorators/IClassOf.js"; import EntityEvents from "@entity-access/entity-access/dist/model/events/EntityEvents.js"; import AppDbContext from "../core/AppDbContext.js"; interface IModelProperty { type?: string; name?: string; enum?: readonly string[]; help?: string; ignore?: boolean; readonly?: boolean; } export declare function JsonProperty(mp?: IModelProperty): (target: any, name: any) => void; export declare const IgnoreJsonProperty: (target: any, name: any) => void; export declare const ReadOnlyJsonProperty: (target: any, name: any) => void; export interface IEntityKey { name: string; type: string; dataType?: string; length?: number; } export interface IEntityPropertyInfo extends IEntityKey { isNullable?: boolean; } export interface IEntityNavigationProperty extends IEntityKey { isCollection?: boolean; } export interface IEntityModel { name?: string; keys?: IEntityKey[]; properties?: IEntityPropertyInfo[]; navigationProperties?: IEntityNavigationProperty[]; } export default class ModelService { static ignore(t: IClassOf, key: string): boolean; static getSchema(type: EntityType, events: EntityEvents): { name: string; keys: { name: string; type: any; generated: "identity" | "computed"; dataType: import("@entity-access/entity-access/dist/decorators/ISqlType.js").ISqlType; length: number; default: [string, any]; }[]; properties: { name: string; type: any; generated: "identity" | "computed"; dataType: import("@entity-access/entity-access/dist/decorators/ISqlType.js").ISqlType; length: number; default: [string, any]; }[]; relations: { name: string; fkMap: { fk: string; relatedKey: string; }[]; isCollection: boolean; isInverse: boolean; relatedName: string; }[]; queries: any; actions: any; }; static getModel(context: AppDbContext): IEntityModel[]; static getModelDeclaration(context: AppDbContext): string; } export {}; //# sourceMappingURL=ModelService.d.ts.map