import { DeepPartial, FindOptionsWhere, ObjectLiteral, Repository } from 'typeorm';
export declare class BaseService<T extends ObjectLiteral> {
    protected readonly repo: Repository<T>;
    constructor(repo: Repository<T>);
    create(data: DeepPartial<T>): Promise<T>;
    findAll(): Promise<T[]>;
    findOne(where: FindOptionsWhere<T>): Promise<T>;
    update(where: FindOptionsWhere<T>, data: DeepPartial<T>): Promise<T>;
    delete(where: FindOptionsWhere<T>): Promise<void>;
}
export declare function ServiceRepo<T extends ObjectLiteral>(entity: new () => T): <U extends {
    new (...args: any[]): object;
}>(constructor: U) => {
    new (...args: any[]): {
        repo: Repository<T>;
    };
} & U;
