import { IRestEntity } from '@jacquesparis/objects-model';
import { EntityName } from '../../models';
import { CurrentContext } from '../application.service';
import { ServiceDescription, TreatmentDescription } from './../../integration/extension-description';
import { AbstractEntityInterceptorInterface } from './../../interceptors/abstract-entity-interceptor.service';
import { ApplicationService } from './../application.service';
export interface EntityDefinitionInterface {
    providerId: string;
    serviceId: string;
    completeReturnedEntity(entity: IRestEntity, ctx: CurrentContext): Promise<void>;
}
export declare class EntityDefinitionService implements AbstractEntityInterceptorInterface, ServiceDescription {
    protected appCtx: ApplicationService;
    private entityDefinitions;
    registerEntityDefinitionService(resource: EntityName, entityDefinition: EntityDefinitionInterface): void;
    getPostTreatmentDescription(): TreatmentDescription[];
    get ready(): Promise<void>;
    constructor(appCtx: ApplicationService);
    completeReturnedEntity(entityName: EntityName, entity: IRestEntity, ctx: CurrentContext): Promise<void>;
    completeReturnedEntities(entityName: EntityName, entities: IRestEntity[], ctx: CurrentContext): Promise<void>;
}
