using MareSynchronos.API.Data; using MareSynchronos.API.Data.Enum; using MareSynchronos.API.Dto; using MareSynchronos.API.Dto.CharaData; using MareSynchronos.API.Dto.Chat; using MareSynchronos.API.Dto.Group; using MareSynchronos.API.Dto.User; namespace MareSynchronos.API.SignalR; public interface IMareHub { const int ApiVersion = 1026; const string Path = "/mare"; Task CheckClientHealth(); Task Client_DownloadReady(Guid requestId); Task Client_GroupChangePermissions(GroupPermissionDto groupPermission); Task Client_GroupChatMsg(GroupChatMsgDto groupChatMsgDto); Task Client_GroupDelete(GroupDto groupDto); Task Client_GroupPairChangePermissions(GroupPairUserPermissionDto permissionDto); Task Client_GroupPairChangeUserInfo(GroupPairUserInfoDto userInfo); Task Client_GroupPairJoined(GroupPairFullInfoDto groupPairInfoDto); Task Client_GroupPairLeft(GroupPairDto groupPairDto); Task Client_GroupSendFullInfo(GroupFullInfoDto groupInfo); Task Client_GroupSendInfo(GroupInfoDto groupInfo); Task Client_ReceiveServerMessage(MessageSeverity messageSeverity, string message); Task Client_UpdateSystemInfo(SystemInfoDto systemInfo); Task Client_UserAddClientPair(UserPairDto dto); Task Client_UserChatMsg(UserChatMsgDto chatMsgDto); Task Client_UserReceiveCharacterData(OnlineUserCharaDataDto dataDto); Task Client_UserReceiveUploadStatus(UserDto dto); Task Client_UserRemoveClientPair(UserDto dto); Task Client_UserSendOffline(UserDto dto); Task Client_UserSendOnline(OnlineUserIdentDto dto); Task Client_UserUpdateOtherPairPermissions(UserPermissionsDto dto); Task Client_UserUpdateProfile(UserDto dto); Task Client_UserUpdateSelfPairPermissions(UserPermissionsDto dto); Task Client_GposeLobbyJoin(UserData userData); Task Client_GposeLobbyLeave(UserData userData); Task Client_GposeLobbyPushCharacterData(CharaDataDownloadDto charaDownloadDto); Task Client_GposeLobbyPushPoseData(UserData userData, PoseData poseData); Task Client_GposeLobbyPushWorldData(UserData userData, WorldData worldData); Task GetConnectionDto(); Task GroupBanUser(GroupPairDto dto, string reason); Task GroupChangeGroupPermissionState(GroupPermissionDto dto); Task GroupChangeIndividualPermissionState(GroupPairUserPermissionDto dto); Task GroupChangeOwnership(GroupPairDto groupPair); Task GroupChangePassword(GroupPasswordDto groupPassword); Task GroupChatSendMsg(GroupDto group, ChatMessage message); Task GroupClear(GroupDto group); Task GroupCreate(); Task> GroupCreateTempInvite(GroupDto group, int amount); Task GroupDelete(GroupDto group); Task> GroupGetBannedUsers(GroupDto group); Task GroupJoin(GroupPasswordDto passwordedGroup); Task GroupLeave(GroupDto group); Task GroupRemoveUser(GroupPairDto groupPair); Task GroupSetUserInfo(GroupPairUserInfoDto groupPair); Task> GroupsGetAll(); Task> GroupsGetUsersInGroup(GroupDto group); Task GroupUnbanUser(GroupPairDto groupPair); Task GroupPrune(GroupDto group, int days, bool execute); Task UserAddPair(UserDto user); Task UserChatSendMsg(UserDto user, ChatMessage message); Task UserDelete(); Task> UserGetOnlinePairs(); Task> UserGetPairedClients(); Task UserGetProfile(UserDto dto); Task UserPushData(UserCharaDataMessageDto dto); Task UserRemovePair(UserDto userDto); Task UserReportProfile(UserProfileReportDto userDto); Task UserSetPairPermissions(UserPermissionsDto userPermissions); Task UserSetProfile(UserProfileDto userDescription); Task CharaDataCreate(); Task CharaDataUpdate(CharaDataUpdateDto updateDto); Task CharaDataDelete(string id); Task CharaDataGetMetainfo(string id); Task CharaDataDownload(string id); Task> CharaDataGetOwn(); Task> CharaDataGetShared(); Task CharaDataAttemptRestore(string id); Task GposeLobbyCreate(); Task> GposeLobbyJoin(string lobbyId); Task GposeLobbyLeave(); Task GposeLobbyPushCharacterData(CharaDataDownloadDto charaDownloadDto); Task GposeLobbyPushPoseData(PoseData poseData); Task GposeLobbyPushWorldData(WorldData worldData); }