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 images.
///
/// Video to use.
void DeleteChapterImages(Video video);
}