using System.Threading.Tasks;

namespace OpenArchival.DataAccess.FileAccessManager;

public interface IImageThumbnailer
{
    /// <summary>
    /// Generates small and large thumbnails for the given image file.
    /// </summary>
    /// <param name="originalFilePath">The full path to the original image file.</param>
    /// <returns>A task that returns a ThumbnailResult containing the paths to the generated thumbnails.</returns>
    Task<ThumbnailResult> GenerateThumbnailsAsync(string originalFilePath);

    /// <summary>
    /// Checks if the file at the given path is a supported image format.
    /// </summary>
    bool IsSupportedImage(string filePath);
}

public record ThumbnailResult(string SmallThumbnailPath, string LargeThumbnailPath);
