import { NextApiRequest as Request, NextApiResponse as Response } from 'next';
import { ServiceModel, ServiceSimpleModel } from '@flexiblepersistence/service';
import { Handler, Event, Operation, Default } from 'flexiblepersistence';
import RouterInitializer from '../router/routerInitializer';
export default class BaseControllerDefault extends Default {
    protected regularErrorStatus: {
        [error: string]: number;
    };
    protected method: {
        [method: string]: string;
    };
    protected handler: Handler | undefined;
    protected middlewares?: any[];
    mainRequestHandler(req: Request, res: Response): Promise<Response>;
    protected errorStatus(error?: string): {
        [error: string]: number;
    } | number;
    constructor(initDefault?: RouterInitializer);
    init(initDefault?: RouterInitializer): void;
    protected event(event: Event): Promise<any>;
    protected runMiddleware(req: any, res: any, fn: any): Promise<unknown>;
    protected runMiddlewares(req: any, res: any): Promise<void>;
    protected generateName(): void;
    protected generateError(res: Response, error: any): Response;
    protected hasObjectName(): boolean;
    protected getObject(object: any): any;
    protected setObject(object: any, value: any): any;
    formatName(): string;
    formatContent(req: Request): ServiceSimpleModel;
    formatParams(req: Request): any;
    formatQuery(req: Request): {
        [key: string]: string | string[];
    };
    formatSingle(params?: any, singleDefault?: boolean): any;
    formatSelection(params?: any, query?: any): any;
    formatEvent(req: Request, operation: Operation, singleDefault?: boolean): Event;
    protected generateStatus(operation: Operation, object: any): number;
    protected generateObject(useFunction: (event: Event) => Promise<ServiceModel[] | ServiceModel | number | boolean>, event: Event): Promise<any>;
    protected generateEvent(req: Request, res: Response, operation: Operation, useFunction: (event: Event) => Promise<ServiceModel[] | ServiceModel | number | boolean>, singleDefault?: boolean): Promise<Response>;
}
//# sourceMappingURL=baseControllerDefault.d.ts.map