import type { IApiBaseEntity } from '../../interface/api-base-entity.interface';
import type { IApiControllerProperties } from '../../interface/decorator/api/index';
import type { IApiEntity } from '../../interface/entity/index';
import type { TApiControllerMethodName, TApiControllerTargetMethod } from '../../type/factory/api/controller/index';
import { EApiRouteType } from '../../enum/decorator/api/index';
export declare class ApiControllerFactory<E extends IApiBaseEntity> {
    protected target: TApiControllerTargetMethod<E>;
    private readonly properties;
    protected get targetPrototype(): InstanceType<typeof this.target>;
    private readonly ENTITY;
    constructor(target: TApiControllerTargetMethod<E>, properties: IApiControllerProperties<E>);
    createMethod(method: EApiRouteType): void;
    init(): void;
    protected [EApiRouteType.CREATE](method: EApiRouteType, methodName: TApiControllerMethodName<typeof EApiRouteType.CREATE>, properties: IApiControllerProperties<E>, entityMetadata: IApiEntity<E>): void;
    protected [EApiRouteType.DELETE](method: EApiRouteType, methodName: TApiControllerMethodName<typeof EApiRouteType.DELETE>, properties: IApiControllerProperties<E>, entityMetadata: IApiEntity<E>): void;
    protected [EApiRouteType.GET](method: EApiRouteType, methodName: TApiControllerMethodName<typeof EApiRouteType.GET>, properties: IApiControllerProperties<E>, entityMetadata: IApiEntity<E>): void;
    protected [EApiRouteType.GET_LIST](method: EApiRouteType, methodName: TApiControllerMethodName<typeof EApiRouteType.GET_LIST>, properties: IApiControllerProperties<E>, entityMetadata: IApiEntity<E>): void;
    protected [EApiRouteType.PARTIAL_UPDATE](method: EApiRouteType, methodName: TApiControllerMethodName<typeof EApiRouteType.PARTIAL_UPDATE>, properties: IApiControllerProperties<E>, entityMetadata: IApiEntity<E>): void;
    protected [EApiRouteType.UPDATE](method: EApiRouteType, methodName: TApiControllerMethodName<typeof EApiRouteType.UPDATE>, properties: IApiControllerProperties<E>, entityMetadata: IApiEntity<E>): void;
}
