import type { Model, Schema } from 'mongoose'; import type { IApp } from '../server.ts'; import Base from './Base.ts'; export interface IAbstractModelMethods { getSuper(): AbstractModel & this; } export interface IAbstractModel extends Model { getSuper(): AbstractModel & this; } declare class AbstractModel = IAbstractModelMethods, IModel extends IAbstractModel = IAbstractModel> extends Base { mongooseSchema: Schema; mongooseModel: IModel; /** * @param IApp app * @param function callback optional callback when connection ready */ constructor(app: IApp); /** * Mongoose schema */ get modelSchema(): {}; /** * Mongoose schema options */ get modelSchemaOptions(): {}; static get loggerGroup(): string; initHooks(): void; } export default AbstractModel;