import { BaseEntity } from './base.entity';
import { IBaseRepository } from './base.repository';
export interface IBaseService<T extends BaseEntity> {
    findAll(filters?: Partial<T>): Promise<T[]>;
    findById(id: string): Promise<T>;
    findOne(filters: Partial<T>): Promise<T>;
    create(data: Partial<T>): Promise<T>;
    update(id: string, data: Partial<T>): Promise<T>;
    remove(id: string): Promise<boolean>;
    count(filters?: Partial<T>): Promise<number>;
}
export declare abstract class BaseService<T extends BaseEntity> implements IBaseService<T> {
    protected readonly repository: IBaseRepository<T>;
    protected readonly entityName: string;
    constructor(repository: IBaseRepository<T>, entityName: string);
    findAll(filters?: Partial<T>): Promise<T[]>;
    findById(id: string): Promise<T>;
    findOne(filters: Partial<T>): Promise<T>;
    create(data: Partial<T>): Promise<T>;
    update(id: string, data: Partial<T>): Promise<T>;
    remove(id: string): Promise<boolean>;
    count(filters?: Partial<T>): Promise<number>;
}
