import * as express from 'express';
import { IGenericService, ServiceParams } from '../index.generic';
import { ControllerOption, IGenericController } from './IGeneric.controller';
export declare abstract class AbstractGenericController implements IGenericController {
    protected service: IGenericService;
    protected parameters: ServiceParams;
    protected option: ControllerOption;
    constructor(s?: IGenericService, option?: ControllerOption);
    abstract execute(type: string): any;
    abstract updateParamFromRequest(type: string, req: express.Request): void;
    parseResponse(response: any, type?: string): any;
    getService(): IGenericService;
    getOption(): any;
    setService(s: IGenericService): void;
    setOption(handler: any): void;
    getServiceParams(): ServiceParams;
    setServiceParams(params: any): void;
    setResponseHeader(res: express.Response<any, Record<string, any>>, response: {
        data: any;
        totalCount?: number;
    }): void;
}
