import { interfaces, BaseHttpController } from 'inversify-express-utils';
import { DeepPartial } from 'typeorm';
import { IAbstractEntity } from '../entities/AbstractEntity';
import { AbstractRepository } from '../repositories/AbstractRepository';
import { AbstractService } from '../services/AbstractService';
declare type Service<T extends IAbstractEntity> = AbstractService<T, AbstractRepository<T>>;
export declare abstract class AbstractController<T extends IAbstractEntity, S extends Service<T>> extends BaseHttpController implements interfaces.Controller {
    private readonly service;
    constructor(service: S);
    getAll(): Promise<T[]>;
    getById(id: number): Promise<T | undefined>;
    post(body: DeepPartial<T>): Promise<T>;
    patch(body: DeepPartial<T>): Promise<T>;
    delete(body: T): void;
}
export {};
//# sourceMappingURL=AbstractController.d.ts.map