import { EApiRouteType } from '../../../../../enum/decorator/api/route';
import { IApiBaseEntity } from '../../../../api-base-entity.interface';
import { IApiAuthenticationRequest } from '../../../../api/authentication-request.interface';
import { IApiAuthorizationPrincipal, IApiAuthorizationPrincipalResolver } from '../principal';
import { IApiAuthorizationRequestMetadata } from '../request-metadata.interface';
/**
 * Optional inputs for policy building.
 * Used to enrich policy hook context.
 */
export interface IApiAuthorizationPolicyBuildOptions<E extends IApiBaseEntity = IApiBaseEntity> {
    authenticationRequest?: IApiAuthenticationRequest;
    permissions?: ReadonlyArray<string>;
    principal?: IApiAuthorizationPrincipal;
    principalResolver?: IApiAuthorizationPrincipalResolver;
    requestMetadata?: IApiAuthorizationRequestMetadata<E>;
    routeType?: EApiRouteType;
}
