// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. type $ID = E['id']; type $UserID = E['user_id']; type $Name = E['name']; type $Username = E['username']; type $Email = E['email']; type RelationOneToOne = { [x in $ID]: T; }; type RelationOneToMany = { [x in $ID]: Array<$ID>; }; type IDMappedObjects = RelationOneToOne; type UserIDMappedObjects = { [x in $UserID]: E; }; type NameMappedObjects = { [x in $Name]: E; }; type UsernameMappedObjects = { [x in $Username]: E; }; type EmailMappedObjects = { [x in $Email]: E; }; type Dictionary = { [key: string]: T; }; type Intersection = Omit)>, keyof(Omit)>;