using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.Entities;
namespace MediaBrowser.Controller.Persistence;
/// 
/// Interface IChapterRepository.
/// 
public interface IChapterRepository
{
    /// 
    /// Deletes the chapters.
    /// 
    /// The item.
    /// The cancellation token.
    /// Task.
    Task DeleteChaptersAsync(Guid itemId, CancellationToken cancellationToken);
    /// 
    /// Saves the chapters.
    /// 
    /// The item.
    /// The set of chapters.
    void SaveChapters(Guid itemId, IReadOnlyList chapters);
    /// 
    /// Gets all chapters associated with the baseItem.
    /// 
    /// The BaseItems id.
    /// A readonly list of chapter instances.
    IReadOnlyList GetChapters(Guid baseItemId);
    /// 
    /// Gets a single chapter of a BaseItem on a specific index.
    /// 
    /// The BaseItems id.
    /// The index of that chapter.
    /// A chapter instance.
    ChapterInfo? GetChapter(Guid baseItemId, int index);
}