# Path: pyuploadcare/transformations/base.py
# class BaseTransformation:
#     def __init__(
#         self, transformation: Optional[Union[str, "BaseTransformation"]] = None
#     ):
#         if isinstance(transformation, BaseTransformation):
#             transformation = transformation.effects
# 
#         self._effects = []
#         if transformation:
#             transformation = transformation.rstrip("/")  # type: ignore
#             self._effects.append(transformation)
# 
#     def set(
#         self, transformation_name: str, parameters: List[str]
#     ) -> "BaseTransformation":
#         effect = transformation_name
#         if parameters:
#             effect += "/" + "/".join(parameters)
#         self._effects.append(effect)
#         return self
# 
#     def _prefix(self, file_id: str) -> str:
#         return f"{file_id}/"
# 
#     def __str__(self):
#         return self.effects
# 
#     @property
#     def effects(self):
#         effects_ = "/-/".join(self._effects)
#         if effects_:
#             effects_ += "/"
#         return effects_
# 
#     def path(self, file_id: str) -> str:
#         path_ = self._prefix(file_id)
# 
#         effects = self.effects
#         if effects:
#             path_ += "-/" + effects
# 
#         return path_
# 
# class StrEnum(str, Enum):
#     def __str__(self):
#         return self.value


from typing import List, Optional, Union
from pyuploadcare.transformations.base import BaseTransformation, StrEnum
class ImageFormat(StrEnum):
    jpeg = "jpeg"
    png = "png"
    webp = "webp"
    auto = "auto"


class ImageQuality(StrEnum):
    normal = "normal"
    better = "better"
    best = "best"
    lighter = "lighter"
    lightest = "lightest"
    smart = "smart"
    smart_retina = "smart_retina"


class Gif2VideoFormat(StrEnum):
    mp4 = "mp4"
    webm = "webm"


class Gif2VideoQuality(StrEnum):
    lightest = "lightest"
    lighter = "lighter"
    normal = "normal"
    better = "better"
    best = "best"



# Path: pyuploadcare/transformations/base.py
# class BaseTransformation:
#     def __init__(
#         self, transformation: Optional[Union[str, "BaseTransformation"]] = None
#     ):
#         if isinstance(transformation, BaseTransformation):
#             transformation = transformation.effects
# 
#         self._effects = []
#         if transformation:
#             transformation = transformation.rstrip("/")  # type: ignore
#             self._effects.append(transformation)
# 
#     def set(
#         self, transformation_name: str, parameters: List[str]
#     ) -> "BaseTransformation":
#         effect = transformation_name
#         if parameters:
#             effect += "/" + "/".join(parameters)
#         self._effects.append(effect)
#         return self
# 
#     def _prefix(self, file_id: str) -> str:
#         return f"{file_id}/"
# 
#     def __str__(self):
#         return self.effects
# 
#     @property
#     def effects(self):
#         effects_ = "/-/".join(self._effects)
#         if effects_:
#             effects_ += "/"
#         return effects_
# 
#     def path(self, file_id: str) -> str:
#         path_ = self._prefix(file_id)
# 
#         effects = self.effects
#         if effects:
#             path_ += "-/" + effects
# 
#         return path_
# 
# class StrEnum(str, Enum):
#     def __str__(self):
#         return self.value


# Path: pyuploadcare/transformations/image.py
from typing import List, Optional, Union
from pyuploadcare.transformations.base import BaseTransformation, StrEnum

class ImageFormat(StrEnum):
    jpeg = "jpeg"
    png = "png"
    webp = "webp"
    auto = "auto"


class ImageQuality(StrEnum):
    normal = "normal"
    better = "better"
    best = "best"
    lighter = "lighter"
    lightest = "lightest"
    smart = "smart"
    smart_retina = "smart_retina"


class Gif2VideoFormat(StrEnum):
    mp4 = "mp4"
    webm = "webm"


class Gif2VideoQuality(StrEnum):
    lightest = "lightest"
    lighter = "lighter"
    normal = "normal"
    better = "better"
    best = "best"



class ColorAdjustment(StrEnum):