export enum AccessControlPermission { CREATE = 'CREATE' , READ = 'READ' , UPDATE = 'UPDATE' , DELETE = 'DELETE' } export interface AccessControlListEntry < T > { [ key ] : Array < AccessControlPermission > ; } export class AccessControlListSection < T > { public includes : AccessControlListEntry < T > = { } ; } export class AccessControlList { activated : boolean ; groups ? : AccessControlListSection < number > ; constructor ( activated , groups ? ) { this . activated = activated ; this . groups = groups ; } }