import { AuthActionVerb, AuthPossession, CustomAuthActionVerb, AuthResource, BatchApproval } from '../types'; import { ExecutionContext } from '@nestjs/common'; export interface Permission { resource: AuthResource; action: AuthActionVerb | CustomAuthActionVerb; possession?: AuthPossession; isOwn?: (ctx: ExecutionContext) => boolean; resourceFromContext?: boolean | ResourceFromContextFn; batchApproval?: BatchApproval; } export type PermissionData = Omit; export type ResourceFromContextFn = (context: ExecutionContext, permission: PermissionData) => AuthResource | AuthResource[];