import Repository from '../repository';
import { Db } from 'mongodb';
export default class MongoDBRepository<T> implements Repository<T> {
    Type: {
        new (...args: any[]): T;
    };
    private Model;
    constructor(type: {
        new (...args: any[]): T;
    }, db: Promise<Db>);
    paginate(conditions: any, sortOptions: any, page: any, perPage: any): Promise<T[]>;
    insertMany(list: T[]): Promise<T[]>;
    count(conditions?: Object): Promise<number>;
    find(conditions: any): Promise<T[]>;
    findOne(conditions: Object): Promise<T>;
    findById(id: string): Promise<T>;
    findLast(sortField: string, limit: number): Promise<T[]>;
    findLastByQuery(conditions: any, sortField: string, limit: number): Promise<T[]>;
    insert(data: T): Promise<T>;
    update(conditions: any, newData: any): Promise<T>;
    deleteOne(conditions: any): Promise<boolean>;
    deleteMany(conditions: any): Promise<boolean>;
    private CastQueryIdToObjectId(query);
    private idToObjectId(id);
    private toInstance;
    private toInstanceArray(listItems);
    private reject(error);
}
