import { PaginationResult } from '@/common/interfaces/pagination-result.interface';
import { FindOptionsOrder, FindOptionsWhere, ObjectLiteral, Repository } from 'typeorm';
import type { Request } from 'express';
export declare abstract class BaseService<T extends ObjectLiteral> {
    protected abstract getRepository(): Promise<Repository<T>>;
    count(condition?: Partial<T>): Promise<number>;
    deleteMany(ids: (number | string)[], repo?: Repository<T>): Promise<{
        success: boolean;
        deletedCount: number;
        ids: (string | number)[];
    }>;
    paginate(page: number | undefined, perPage: number | undefined, req: Request, filters?: FindOptionsWhere<T>, order?: FindOptionsOrder<T>, relations?: string[]): Promise<PaginationResult<T>>;
}
