import { EApiPolicyEffect } from '../../../../../enum/class/authorization';
import { IApiBaseEntity } from '../../../../api-base-entity.interface';
import { TApiAuthorizationRuleCondition } from '../../../../../type/class/api/authorization/rule/condition.type';
import { TApiAuthorizationRuleResultTransform } from '../../../../../type/class/api/authorization/rule/result-transform.type';
import { TApiAuthorizationRuleScopeResolver } from '../../../../../type/class/api/authorization/rule/scope-resolver.type';
export interface IApiAuthorizationRule<E extends IApiBaseEntity, R> {
    action: string;
    condition?: TApiAuthorizationRuleCondition<E>;
    description?: string;
    effect: EApiPolicyEffect;
    policyId: string;
    priority: number;
    resultTransform?: TApiAuthorizationRuleResultTransform<E, R>;
    scope?: TApiAuthorizationRuleScopeResolver<E>;
}
