#pragma once


#include "C_P1ImageCommonTypes.h"
#include "P1ImageRawImage.hpp"

namespace P1
{
	namespace ImageSdk
	{
		/**
		 * @brief Writes a JPEG file to the disk synchronously
		 *
		 * @param filename The path to the output file, it may be a single character or wide characer string.
		 * @param bitmap The rendered bitmap
		 * @param image The raw image's in memory representation
		 * @param config Describes the JPEG metadata/preview
		 * @throw SDKException The function will throw an exception in case of failure.
		 */

		class EXPORT_API JpegWriter
		{
		public:
			JpegWriter(std::string filename, P1::ImageSdk::BitmapImage& bitmap, P1::ImageSdk::RawImage& image, JpegConfig& config)  noexcept(false);
		};
	}
}