import { IRestEntity } from '@jacquesparis/objects-model';
import { AuthorizationContext, AuthorizationDecision } from '@loopback/authorization';
import { EntityName } from '../../models/entity-name';
import { CurrentContext } from '../application.service';
import { AccessRightsInterface, AccessRightsService } from './access-rights.service';
export declare abstract class AccessRightsAbstractService implements AccessRightsInterface {
    providerId: string;
    serviceId: string;
    protected accessRightsService: AccessRightsService;
    protected resource: EntityName;
    constructor(providerId: string, serviceId: string, accessRightsService: AccessRightsService, resource: EntityName);
    abstract cleanReturnedEntity(entity: IRestEntity, ctx: CurrentContext): Promise<void>;
    protected abstract authorizeRead(ctx: CurrentContext, context: AuthorizationContext): Promise<AuthorizationDecision>;
    protected abstract authorizeCreate(ctx: CurrentContext, context: AuthorizationContext): Promise<AuthorizationDecision>;
    protected abstract authorizeUpdate(ctx: CurrentContext, context: AuthorizationContext): Promise<AuthorizationDecision>;
    protected abstract authorizeDelete(ctx: CurrentContext, context: AuthorizationContext): Promise<AuthorizationDecision>;
    authorize(ctx: CurrentContext, context: AuthorizationContext): Promise<AuthorizationDecision>;
}
