import { Operation, Permissions } from '../providers/permissions.provider'; import { Member } from '../models'; export declare class UnknownPermissionError extends Error { constructor(type: string); } /** * Assert Permissions Against Object Type: Can User Do X? * ============================================================================= * This checks permissions for a given user, against a given permission * function. Generally speaking, in the D4H API all users can read all records, * although exceptions exist. All checks defer to a Permissions-typed function * which should be injected under the CLIENT_PERMISSIONS multi token. * * @example * * this.can.action('inspections', member, Operation.Update, inspection) * this.can.action('repairs', member, Operation.Create) * this.can.read('repairs', member) * this.can.destroy('inspections', member, inspection) */ export declare class Can { private readonly provided; readonly permissions: Permissions; constructor(provided: Array); action(member: Member, type: string, operation?: Operation, record?: T): boolean; create(member: Member, type: string): boolean; read(member: Member, type: string, record?: T): boolean; update(member: Member, type: string, record?: T): boolean; destroy(member: Member, type: string, record?: T): boolean; }