using System.IO; using System.Threading.Tasks; using ErsatzTV.Core.Domain; using ErsatzTV.Core.Interfaces.FFmpeg; using LanguageExt; namespace ErsatzTV.Core.Interfaces.Images { public interface IImageCache { Task> ResizeImage(byte[] imageBuffer, int height); Task> SaveArtworkToCache(Stream stream, ArtworkKind artworkKind); Task> CopyArtworkToCache(string path, ArtworkKind artworkKind); string GetPathForImage(string fileName, ArtworkKind artworkKind, Option maybeMaxHeight); Task IsAnimated(string fileName); Task CalculateBlurHash(string fileName, ArtworkKind artworkKind, int x, int y); Task WriteBlurHash(string blurHash, IDisplaySize targetSize); } }