using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Kavita.Models.DTOs.Progress;
using Kavita.Models.Entities;
using Kavita.Models.Entities.Progress;
namespace Kavita.API.Services.Reading;
public interface IReadingSessionService
{
Task UpdateProgress(int userId, ProgressDto progressDto, ClientInfoData? clientInfo, int? deviceId);
///
/// Generate new reading sessions for all chapters in the given series (Incorrect chapterIds are ignored)
///
/// Chapters will be read in ascending .
/// With the last chapter being finished reading now
///
///
///
/// A dictionary mapping chapter ids to progress counts from where the session should be generated
///
///
Task GenerateReadingSessionForChapters(int userId, int seriesId, Dictionary chaptersMap, CancellationToken ct = default);
}