import { PureAbility, AbilityBuilder } from '@casl/ability'; import { AuthUser } from '../../auth'; export type Can = AbilityBuilder['can']; export type Cannot = AbilityBuilder['cannot']; export declare abstract class ResourcePolicy { createAbilityForUser(user: AuthUser): T; abstract define(user: AuthUser, subject: S, can: Can, cannot: Cannot): void; abstract getSubject(): S; }