namespace RobotNet10.MapManager.Services; /// /// Interface for image storage operations (Minio or FileSystem) /// public interface IImageStorageService { /// /// Save image for a layout level /// /// Layout level ID /// Image stream (PNG format) /// Cancellation token Task SaveImageAsync(Guid layoutLevelId, Stream imageStream, CancellationToken cancellationToken = default); /// /// Get image for a layout level /// /// Layout level ID /// Cancellation token /// Image stream or null if not found Task GetImageAsync(Guid layoutLevelId, CancellationToken cancellationToken = default); /// /// Delete image for a layout level /// /// Layout level ID /// Cancellation token Task DeleteImageAsync(Guid layoutLevelId, CancellationToken cancellationToken = default); /// /// Check if image exists for a layout level /// /// Layout level ID /// Cancellation token Task ImageExistsAsync(Guid layoutLevelId, CancellationToken cancellationToken = default); /// /// Extract image dimensions from stream /// /// Image stream (PNG format) /// Cancellation token /// Tuple of (width, height) in pixels Task<(int width, int height)> GetImageDimensionsAsync(Stream imageStream, CancellationToken cancellationToken = default); }