using System; using System.Collections.Generic; using System.Threading.Tasks; namespace MareSynchronos.API { public enum MessageSeverity { Information, Warning, Error } public interface IMareHub { const int ApiVersion = 20; const string Path = "/mare"; Task FilesAbortUpload(); Task> AdminGetOnlineUsers(); Task GroupChangePassword(string gid, string password); Task AdminChangeModeratorStatus(string uid, bool isModerator); Task GroupChangeOwnership(string gid, string uid); Task GroupChangePinned(string gid, string uid, bool isPinned); Task CheckClientHealth(); Task GroupClear(string gid); Task GroupCreate(); Task UserDelete(); Task FilesDeleteAll(); Task AdminDeleteBannedUser(BannedUserDto dto); Task AdminDeleteForbiddenFile(ForbiddenFileDto dto); Task> AdminGetBannedUsers(); Task> FilesGetSizes(List hashes); Task> AdminGetForbiddenFiles(); Task> GroupGetBannedUsers(string gid); Task> GroupsGetAll(); Task> UserGetOnlineCharacters(); Task> UserGetPairedClients(); Task> GroupsGetUsersInGroup(string gid); Task GroupBanUser(string gid, string uid, string reason); Task GroupChangeInviteState(string gid, bool enabled); Task GroupChangePauseState(string gid, bool isPaused); Task GroupDelete(string gid); Task GroupJoin(string gid, string password); Task GroupLeave(string gid); Task GroupRemoveUser(string gid, string uid); Task GroupUnbanUser(string gid, string uid); Task> GroupCreateTempInvite(string gid, int amount); Task GetConnectionDto(); Task FilesIsUploadFinished(); Task UserPushData(CharacterCacheDto characterCache, List visibleCharacterIds); Task> FilesSend(List fileListHashes); Task UserAddPair(string uid); Task UserChangePairPauseStatus(string otherUserUid, bool isPaused); Task UserRemovePair(string otherUserUid); Task GroupSetModerator(string gid, string uid, bool isModerator); Task AdminUpdateOrAddBannedUser(BannedUserDto dto); Task AdminUpdateOrAddForbiddenFile(ForbiddenFileDto dto); Task FilesUploadStreamAsync(string hash, IAsyncEnumerable fileContent); Task Client_UserUpdateClientPairs(ClientPairDto clientPairDto); Task Client_UpdateSystemInfo(SystemInfoDto systemInfo); Task Client_UserReceiveCharacterData(CharacterCacheDto clientPairDto, string characterIdent); Task Client_UserChangePairedPlayer(string characterIdent, bool isOnline); Task Client_GroupChange(GroupDto groupDto); Task Client_GroupUserChange(GroupPairDto groupPairDto); Task Client_AdminForcedReconnect(); Task Client_AdminDeleteBannedUser(BannedUserDto dto); Task Client_AdminDeleteForbiddenFile(ForbiddenFileDto dto); Task Client_AdminUpdateOrAddBannedUser(BannedUserDto dto); Task Client_AdminUpdateOrAddForbiddenFile(ForbiddenFileDto dto); Task Client_ReceiveServerMessage(MessageSeverity messageSeverity, string message); Task Client_DownloadReady(Guid requestId); } public interface IMareHubClient : IMareHub { void OnUserUpdateClientPairs(Action act); void OnUpdateSystemInfo(Action act); void OnUserReceiveCharacterData(Action act); void OnUserChangePairedPlayer(Action act); void OnGroupChange(Action act); void OnGroupUserChange(Action act); void OnAdminForcedReconnect(Action act); void OnAdminDeleteBannedUser(Action dto); void OnAdminDeleteForbiddenFile(Action act); void OnAdminUpdateOrAddBannedUser(Action dto); void OnAdminUpdateOrAddForbiddenFile(Action dto); void OnReceiveServerMessage(Action act); void OnDownloadReady(Action act); } }