import type { IApiBaseEntity } from '../../../../api-base-entity.interface';
import type { IApiAuthorizationPolicy } from './interface';
import type { IApiAuthorizationPolicySubscriberRegistration } from './subscriber/registration.interface';
import type { TApiAuthorizationPolicyHookResult } from '../../../../../type/class/api/authorization/policy/hook/index';
export interface IApiAuthorizationPolicyRegistry {
    buildAggregatedPolicy<E extends IApiBaseEntity, TAction extends string>(entity: new () => E, action: TAction): Promise<IApiAuthorizationPolicy<E, TApiAuthorizationPolicyHookResult<TAction, E>> | undefined>;
    clear(): void;
    registerSubscriber<E extends IApiBaseEntity>(registration: IApiAuthorizationPolicySubscriberRegistration<E>): void;
}
