using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
namespace MediaBrowser.Controller.Chapters;
/// 
/// Interface IChapterManager.
/// 
public interface IChapterManager
{
    /// 
    /// Saves the chapters.
    /// 
    /// The video.
    /// The set of chapters.
    void SaveChapters(Video video, IReadOnlyList chapters);
    /// 
    /// 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);
    /// 
    /// Gets all chapters associated with the baseItem.
    /// 
    /// The BaseItems id.
    /// A readonly list of chapter instances.
    IReadOnlyList GetChapters(Guid baseItemId);
    /// 
    /// Refreshes the chapter images.
    /// 
    /// Video to use.
    /// Directory service to use.
    /// Set of chapters to refresh.
    /// Option to extract images.
    /// Option to save chapters.
    /// CancellationToken to use for operation.
    /// true if successful, false if not.
    Task RefreshChapterImages(Video video, IDirectoryService directoryService, IReadOnlyList chapters, bool extractImages, bool saveChapters, CancellationToken cancellationToken);
    /// 
    /// Deletes the chapter data.
    /// 
    /// The item id.
    /// The cancellation token.
    /// Task.
    Task DeleteChapterDataAsync(Guid itemId, CancellationToken cancellationToken);
}