#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Drawing;
namespace MediaBrowser.Controller.Drawing
{
public interface IImageEncoder
{
///
/// Gets the supported input formats.
///
/// The supported input formats.
IReadOnlyCollection SupportedInputFormats { get; }
///
/// Gets the supported output formats.
///
/// The supported output formats.
IReadOnlyCollection SupportedOutputFormats { get; }
///
/// Gets the display name for the encoder.
///
/// The display name.
string Name { get; }
///
/// Gets a value indicating whether [supports image collage creation].
///
/// true if [supports image collage creation]; otherwise, false.
bool SupportsImageCollageCreation { get; }
///
/// Gets a value indicating whether [supports image encoding].
///
/// true if [supports image encoding]; otherwise, false.
bool SupportsImageEncoding { get; }
///
/// Get the dimensions of an image from the filesystem.
///
/// The filepath of the image.
/// The image dimensions.
ImageDimensions GetImageSize(string path);
///
/// Gets the blurhash of an image.
///
/// Amount of X components of DCT to take.
/// Amount of Y components of DCT to take.
/// The filepath of the image.
/// The blurhash.
string GetImageBlurHash(int xComp, int yComp, string path);
///
/// Encode an image.
///
/// Input path of image.
/// Date modified.
/// Output path of image.
/// Auto-orient image.
/// Desired orientation of image.
/// Quality of encoded image.
/// Image processing options.
/// Image format of output.
/// Path of encoded image.
string EncodeImage(string inputPath, DateTime dateModified, string outputPath, bool autoOrient, ImageOrientation? orientation, int quality, ImageProcessingOptions options, ImageFormat outputFormat);
///
/// Create an image collage.
///
/// The options to use when creating the collage.
/// Optional.
void CreateImageCollage(ImageCollageOptions options, string? libraryName);
///
/// Creates a new splashscreen image.
///
/// The list of poster paths.
/// The list of backdrop paths.
void CreateSplashscreen(IReadOnlyList posters, IReadOnlyList backdrops);
///
/// Creates a new jpeg trickplay grid image.
///
/// The options to use when creating the image. Width and Height are a quantity of tiles in this case, not pixels.
/// The image encode quality.
/// The width of a single trickplay image.
/// Optional height of a single trickplay image, if it is known.
/// Height of single decoded trickplay image.
int CreateTrickplayGrid(ImageCollageOptions options, int quality, int imgWidth, int? imgHeight);
}
}