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);
}