import { DeepPartial, DeleteResult, EntityTarget, FindConditions, Repository } from 'typeorm';
import { IAbstractEntity } from '../entities/AbstractEntity';
import { EntityID } from '../types/EntityIDType';
export declare abstract class AbstractRepository<T extends IAbstractEntity> {
    protected readonly session: Repository<T>;
    constructor(entity: EntityTarget<T>);
    select: (where?: FindConditions<T> | undefined) => Promise<T[]>;
    selectById: (id: EntityID) => Promise<T | undefined>;
    insertOrUpdate: (data: DeepPartial<T>) => Promise<T>;
    delete: (removeCriteria: string | number | FindConditions<T> | string[] | number[] | Date | Date[]) => Promise<DeleteResult>;
}
//# sourceMappingURL=AbstractRepository.d.ts.map