import { IRepository } from './i-repository'; import returnObject from '../helpers/return-object'; import { ObjectLiteral, Repository, SelectQueryBuilder, EntityManager } from 'typeorm'; import { ProxyQuery } from './proxy-repository'; import { CommonModel } from '../models/common-model'; import simplePaginationReturnObject from '../helpers/return-simple-pagination-object'; export declare abstract class GeneralRepository implements IRepository { model: new () => T; protected entity: EntityManager; queryBuilder: SelectQueryBuilder; useSimplePagination: boolean; protected item_per_page: number; protected primaryKey: string; constructor(model: new () => T, entity: EntityManager); repo(): Repository; insertBulkData(data: T[]): Promise; updateById(id: number, data: T): Promise; deleteById(id: number): Promise; findById(id: number): Promise; insertData(data: T): Promise; protected setuseSimplePagination(value?: boolean): void; retrieveData(filter: ObjectLiteral, lockForUpdate?: boolean): Promise; private returnSimplePagination; private returnBasicPagination; protected getPaginated(queryBuilder: SelectQueryBuilder, filter: ObjectLiteral): Promise; protected executeRetrieveDataQuery(queryBuilder: SelectQueryBuilder): Promise<(number | T[])[]>; protected commonFilter(queryBuilder: ProxyQuery, filter: ObjectLiteral): void; protected applySelect(queryBuilder: ProxyQuery, filter: ObjectLiteral): void; protected commonSort(queryBuilder: ProxyQuery, filter: ObjectLiteral): void; protected applyFilter(queryBuilder: ProxyQuery, filter: ObjectLiteral): void; protected applySort(queryBuilder: ProxyQuery, filter: ObjectLiteral): void; protected applyAllQuery(queryBuilder: ProxyQuery, filter: ObjectLiteral): void; }