import { IModule } from '@lskjs/module'; export interface IModel { __model: boolean; } export declare type IModelKeyValue = { [name: string]: IModel; }; export declare type IAsyncModel = IModel | Promise | (() => IModel) | (() => Promise); export declare type IAsyncModelKeyValue = { [name: string]: IAsyncModel; }; export interface IModelsModule extends IModule { /** * from constructor */ __models?: IAsyncModelKeyValue; /** * overridable field */ models?: IAsyncModelKeyValue; /** * overridable method */ getModels(): IAsyncModelKeyValue | Promise; model(nameOrNames: string | string[], ...args: any[]): Promise; }