import { DeepPartial, DeleteResult, EntityManager, FindOptionsWhere, Repository } from "typeorm";
import { QueryDeepPartialEntity } from "typeorm/query-builder/QueryPartialEntity";
import { HasId } from "../interfaces/has-id.interface";
import { PaginatedResult } from "../interfaces/pagination-result.interface";
import { QueryParams } from "../interfaces/query-params.interface";
export declare abstract class BaseAbstractRepository<T extends HasId> {
    protected entity: Repository<T>;
    protected constructor(entity: Repository<T>);
    getByParams(params: QueryParams<T>): Promise<PaginatedResult<T> | T[] | T | number | undefined>;
    save(data: QueryDeepPartialEntity<T>, conditions?: FindOptionsWhere<T>, manager?: EntityManager, useForceSave?: boolean): Promise<T>;
    saveMany(data: DeepPartial<T>[], conditions?: FindOptionsWhere<T>, manager?: EntityManager): Promise<T[]>;
    remove(conditions: FindOptionsWhere<T>, manager?: EntityManager, hardDelete?: boolean): Promise<T | DeleteResult>;
}
