import { Filter } from '@nestjs-query/core'; export declare enum OperationGroup { READ = "read", AGGREGATE = "aggregate", CREATE = "create", UPDATE = "update", DELETE = "delete" } export interface AuthorizationContext { /** The name of the method that uses the @AuthorizeFilter decorator */ readonly operationName: string; /** The group this operation belongs to */ readonly operationGroup: OperationGroup; /** If the operation does not modify any entities */ readonly readonly: boolean; /** If the operation can affect multiple entities */ readonly many: boolean; } export interface CustomAuthorizer { authorize(context: any, authorizerContext: AuthorizationContext): Promise>; authorizeRelation?(relationName: string, context: any, authorizerContext: AuthorizationContext): Promise | undefined>; } export interface Authorizer extends CustomAuthorizer { authorize(context: any, authorizerContext: AuthorizationContext): Promise>; authorizeRelation(relationName: string, context: any, authorizerContext: AuthorizationContext): Promise>; }