export enum SubjectType { GROUP = 'group', ACCOUNT = 'account', } export enum AccessMode { PUBLIC = 'public', SPECIFIC_GROUPS_MEMBERS = 'private', ORGANIZATION = 'private_all', } export type AccessControlGroup = { 'id': 'string' 'name': 'string' 'groupSize': 5 } export type AccessControlAccount = { 'id': 'string' 'name': 'string' 'email': 'string' 'avatar': 'string' 'avatarUrl': 'string' } export type SubjectGroup = { subjectId: string; subjectType: SubjectType; groupData: AccessControlGroup } export type SubjectAccount = { subjectId: string; subjectType: SubjectType; accountData: AccessControlAccount } export type Subject = SubjectGroup | SubjectAccount