import { Type } from '@nestjs/common'; import { FindOptionsWhere } from 'typeorm'; import { CaliobaseRequestUser } from '../../auth'; import { EntityActions, Role } from '../roles'; export type PolicyStatements = PolicyStatement[]; export type PolicyUserCondition = { role: Role | Role[]; } | ((payload: CaliobaseRequestUser) => boolean); export type PolicyStatement = { effect: 'allow' | 'deny'; action: '*' | EntityActions[]; users?: PolicyUserCondition; items?: ((context: { user: CaliobaseRequestUser; }) => FindOptionsWhere) | FindOptionsWhere; }; export type EffectivePolicy = { effect: 'allow' | 'deny'; itemFilters: FindOptionsWhere[]; }; export declare const AccessPolicies: ((statements?: PolicyStatements) => ClassDecorator) & { get(target: Type): PolicyStatements | undefined; };