#nullable disable
#pragma warning disable CS1591
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
namespace MediaBrowser.Controller.MediaEncoding;
public interface IAttachmentExtractor
{
    /// 
    /// Gets the path to the attachment file.
    /// 
    /// The .
    /// The media source id.
    /// The attachment index.
    /// The cancellation token.
    /// The async task.
    Task<(MediaAttachment Attachment, Stream Stream)> GetAttachment(
        BaseItem item,
        string mediaSourceId,
        int attachmentStreamIndex,
        CancellationToken cancellationToken);
    /// 
    /// Gets the path to the attachment file.
    /// 
    /// The input file path.
    /// The  source id.
    /// The cancellation token.
    /// The async task.
    Task ExtractAllAttachments(
        string inputFile,
        MediaSourceInfo mediaSource,
        CancellationToken cancellationToken);
}