export interface PermitCheckSchema { loggedInUser: string; userAttributes: Record; backendUrl: string; defaultAnswerIfNotExist: boolean; state: PermitStateSchema; check: (action: string, resource: string | ReBACResourceSchema, resourceAttributes?: Record) => boolean; addKeyToState: (action: string, resource: string | ReBACResourceSchema, resourceAttributes?: Record) => Promise; loadLocalState: (actionsResourcesList: ActionResourceSchema[]) => Promise; getCaslJson: () => CaslPermissionSchema[]; loadLocalStateBulk: (actionsResourcesList: ActionResourceSchema[]) => Promise; } export interface CaslPermissionSchema { action: string; subject: string; inverted: boolean; } export interface PermitStateSchema { [key: string]: boolean; } export interface ActionResourceSchema { action: string; resource: string | ReBACResourceSchema; userAttributes?: Record; resourceAttributes?: Record; } export interface ReBACResourceSchema { type: string; key: string; }