using FluentResults;

namespace NexusReader.Application.Abstractions.Services;

/// <summary>
/// Service abstraction to extract raw text content from EPUB chapters.
/// </summary>
public interface IEpubExtractor
{
    /// <summary>
    /// Extracts the sanitized, plain-text content of each chapter in the EPUB file.
    /// </summary>
    /// <param name="relativePath">The relative storage path of the EPUB file.</param>
    /// <param name="cancellationToken">Cancellation token.</param>
    /// <returns>A list of plain-text chapters, or a failure result.</returns>
    Task<Result<List<string>>> ExtractChaptersTextAsync(string relativePath, CancellationToken cancellationToken = default);
}
