using YD_TrainingCompetition_Api.Models; namespace YD_TrainingCompetition_Api.Competition; public interface ICompetitionSessionService { CompetitionSessionState GetState(); Task CreateAsync(CreateCompetitionSessionRequest request, CancellationToken cancellationToken = default); Task SelectRoundAsync(int roundIndex, CancellationToken cancellationToken = default); Task SelectNextRoundAsync(CancellationToken cancellationToken = default); Task SelectPreviousRoundAsync(CancellationToken cancellationToken = default); Task DownloadCurrentRoundAsync(CancellationToken cancellationToken = default); Task StartAsync(CancellationToken cancellationToken = default); Task StopAsync(CancellationToken cancellationToken = default); Task ResetCurrentRoundAsync(CancellationToken cancellationToken = default); Task SetParticipantCountAsync(int participantId, int count, CancellationToken cancellationToken = default); Task ChangeParticipantCountAsync(int participantId, int delta, CancellationToken cancellationToken = default); Task ApplyDeviceSnapshotAsync(DeviceSnapshot snapshot, CancellationToken cancellationToken = default); }