import { DatabaseAdapter } from './interfaces/DatabaseAdapter'; export default abstract class Model { private static database; static setDatabase(database: DatabaseAdapter): void; protected getDatabase(): DatabaseAdapter; protected getTableName(tenantId?: string): string; protected getPrimaryKeyFilter(): any; static find(this: new () => T, filter?: Partial, tenantId?: string): Promise; static findOne(this: new () => T, filter: Partial, tenantId?: string): Promise; save(tenantId?: string): Promise; static paginate(this: new () => T, filter: Partial, limit: number, offset: number, tenantId?: string): Promise; static updateAll(this: new () => T, filter: Partial, updates: Partial, tenantId?: string): Promise; protected serializeUpdates(updates: Partial): any; update(tenantId?: string): Promise; delete(tenantId?: string): Promise; static deleteAll(this: new () => T, filter?: Partial, tenantId?: string): Promise; static count(this: new () => T, filter?: Partial, tenantId?: string): Promise; static exists(this: new () => T, filter: Partial, tenantId?: string): Promise; protected serialize(): any; static findById(this: new () => T, id: any, tenantId?: string): Promise; static lookup(this: new () => T, relatedEntityOrPipeline: string | any[], localKey: string, foreignKey: string, asFieldOrColumns: string | string[], tenantId?: string): Promise; static join(this: new () => T, relatedTable: string, localKey: string, foreignKey: string, columns?: string[], tenantId?: string): Promise; static aggregate(this: new () => T, pipeline: any[], tenantId?: string): Promise; } //# sourceMappingURL=BaseModel.d.ts.map