import { UserModifiableEntity } from '@backend/domain';
import { DeepPartial, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from 'typeorm';
import { QueryDeepPartialEntity } from 'typeorm/query-builder/QueryPartialEntity';
import { BaseEntityRepository } from './base-entity.repository';
export declare abstract class UserModifiableEntityRepository<T extends UserModifiableEntity<T>> extends BaseEntityRepository<T> {
    readonly _repository: Repository<T>;
    constructor(_repository: Repository<T>);
    save<K extends DeepPartial<T>>(entities: K[], options: SaveOptions & {
        reload: false;
    }): Promise<T[]>;
    save<K extends DeepPartial<T>>(entities: K[], options?: SaveOptions | undefined): Promise<T[]>;
    save<K extends DeepPartial<T>>(entity: K, options: SaveOptions & {
        reload: false;
    }): Promise<T>;
    save<K extends DeepPartial<T>>(entity: K, options?: SaveOptions | undefined): Promise<T>;
    update(criteria: FindOptionsWhere<T>, partialEntity: QueryDeepPartialEntity<T>): Promise<UpdateResult>;
    private assignAuditFields;
}
