// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. #nullable disable using System.Threading.Tasks; namespace osu.Game.Online.Spectator { /// /// An interface defining a spectator client instance. /// public interface ISpectatorClient { /// /// Signals that a user has begun a new play session. /// /// The user. /// The state of gameplay. Task UserBeganPlaying(int userId, SpectatorState state); /// /// Signals that a user has finished a play session. /// /// The user. /// The state of gameplay. Task UserFinishedPlaying(int userId, SpectatorState state); /// /// Called when new frames are available for a subscribed user's play session. /// /// The user. /// The frame data. Task UserSentFrames(int userId, FrameDataBundle data); /// /// Signals that a user's submitted score was fully processed. /// /// The ID of the user who achieved the score. /// The ID of the score. Task UserScoreProcessed(int userId, long scoreId); } }