import { BaseController } from 'lynx-framework/base.controller';
import { EntityMetadata } from './decorators';
import BaseEntity from 'lynx-framework/entities/base.entity';
import Request from 'lynx-framework/request';
import Datagrid from 'lynx-datagrid/datagrid';
export declare class Controller extends BaseController {
    static saveEntity(entity: any, req: Request): Promise<any>;
    postConstructor(): Promise<void>;
    get adminUI(): {
        entity: any;
        meta: EntityMetadata;
    }[];
    entitiesList(): {
        name: string;
        readableName: string;
    }[];
    retrieveEntity(entityName: string, id: any): Promise<BaseEntity | null>;
    retrieveEntityClass(entityName: string): any;
    retrieveMetadata(entityName: string): EntityMetadata;
    retrieveData(req: Request, entityName: string, id: any): Promise<any>;
    retrieveList(req: Request, entityName: string, datagrid: Datagrid<any>): Promise<void>;
    cleanData(req: Request, _data: BaseEntity, metadata: EntityMetadata, forList?: boolean): Promise<any>;
    setData(req: Request, entity: BaseEntity, data: any, metadata: EntityMetadata, prefix?: string): Promise<void>;
    private evaluateTemplate;
    generateContextMetadata(metadata: EntityMetadata, req: Request): Promise<EntityMetadata>;
    generateContextFields(metadata: EntityMetadata, req: Request, entityData: any, forceReadOnly?: boolean, forceHide?: boolean): Promise<any>;
    getUrlWithoutPage(req: Request): string;
    getUrlWithoutOrder(req: Request): string;
    getUrlWithoutPageOrOrder(req: Request): string;
    getUrlWithoutParameter(req: Request, parameters: string[]): string;
    generateQueryValue(key: string, q: any): string;
}
