using Minint.Core.Models;

namespace Minint.Core.Services;

public interface IImageEffectService
{
    /// <summary>
    /// Adjusts contrast of the document by modifying palette colors.
    /// <paramref name="factor"/> > 1 increases contrast, &lt; 1 decreases.
    /// Index 0 (transparent) is not modified.
    /// </summary>
    void AdjustContrast(MinintDocument document, float factor);

    /// <summary>
    /// Converts the document to grayscale by modifying palette colors.
    /// Uses ITU-R BT.601 luminance: gray = 0.299R + 0.587G + 0.114B.
    /// Index 0 (transparent) is not modified.
    /// </summary>
    void ToGrayscale(MinintDocument document);
}
