// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System; using System.Threading.Tasks; namespace osu.Game.Online.Matchmaking { public interface IMatchmakingClient : IStatefulUserHubClient { /// /// Signals that the local user was placed in the matchmaking queue. /// Task MatchmakingQueueJoined(); /// /// Signals that the local user was removed from the matchmaking queue. /// Task MatchmakingQueueLeft(); /// /// Signals that a match has been found and the local user is invited to it. /// The invitation may be accepted, /// declined, /// or ignored - in which case it will automatically be declined after a short timeout period. /// /// /// Provided for compatibility with older clients - can be removed 20260825. /// [Obsolete] Task MatchmakingRoomInvited(); /// /// Signals that a match has been found and the local user is invited to it. /// The invitation may be accepted, /// declined, /// or ignored - in which case it will automatically be declined after a short timeout period. /// Task MatchmakingRoomInvitedWithParams(MatchmakingRoomInvitationParams invitation); /// /// Signals that the user has been issued a duel by another user. /// /// Contains the parameters for the duel. Task MatchmakingDuelIssued(MatchmakingDuelIssuedParams issue); /// /// Signals that the matchmaking room is ready to be opened. /// Task MatchmakingRoomReady(long roomId, string password); /// /// The matchmaking lobby status has changed. /// Task MatchmakingLobbyStatusChanged(MatchmakingLobbyStatus status); /// /// The matchmaking status of the current user has changed. /// Task MatchmakingQueueStatusChanged(MatchmakingQueueStatus status); /// /// The user has raised a candidate playlist item to be played. /// /// The notifying user. /// The playlist item candidate raised, or -1 as a special value that indicates a random selection. Task MatchmakingItemSelected(int userId, long playlistItemId); /// /// The user has removed a candidate playlist item. /// /// The notifying user. /// The playlist item candidate removed, or -1 as a special value that indicates a random selection. Task MatchmakingItemDeselected(int userId, long playlistItemId); } }