local enum
enum = require("magick.enum").enum
local filters = enum({
  [0] = "UndefinedFilter",
  "PointFilter",
  "BoxFilter",
  "TriangleFilter",
  "HermiteFilter",
  "HanningFilter",
  "HammingFilter",
  "BlackmanFilter",
  "GaussianFilter",
  "QuadraticFilter",
  "CubicFilter",
  "CatromFilter",
  "MitchellFilter",
  "LanczosFilter",
  "BesselFilter",
  "SincFilter"
})
local composite_operators = enum({
  [0] = "UndefinedCompositeOp",
  "OverCompositeOp",
  "InCompositeOp",
  "OutCompositeOp",
  "AtopCompositeOp",
  "XorCompositeOp",
  "PlusCompositeOp",
  "MinusCompositeOp",
  "AddCompositeOp",
  "SubtractCompositeOp",
  "DifferenceCompositeOp",
  "MultiplyCompositeOp",
  "BumpmapCompositeOp",
  "CopyCompositeOp",
  "CopyRedCompositeOp",
  "CopyGreenCompositeOp",
  "CopyBlueCompositeOp",
  "CopyOpacityCompositeOp",
  "ClearCompositeOp",
  "DissolveCompositeOp",
  "DisplaceCompositeOp",
  "ModulateCompositeOp",
  "ThresholdCompositeOp",
  "NoCompositeOp",
  "DarkenCompositeOp",
  "LightenCompositeOp",
  "HueCompositeOp",
  "SaturateCompositeOp",
  "ColorizeCompositeOp",
  "LuminizeCompositeOp",
  "ScreenCompositeOp",
  "OverlayCompositeOp",
  "CopyCyanCompositeOp",
  "CopyMagentaCompositeOp",
  "CopyYellowCompositeOp",
  "CopyBlackCompositeOp",
  "DivideCompositeOp",
  "HardLightCompositeOp",
  "ExclusionCompositeOp",
  "ColorDodgeCompositeOp",
  "ColorBurnCompositeOp",
  "SoftLightCompositeOp",
  "LinearBurnCompositeOp",
  "LinearDodgeCompositeOp",
  "LinearLightCompositeOp",
  "VividLightCompositeOp",
  "PinLightCompositeOp",
  "HardMixCompositeOp"
})
local colorspaces = enum({
  [0] = "UndefinedColorspace",
  "RGBColorspace",
  "GRAYColorspace",
  "TransparentColorspace",
  "OHTAColorspace",
  "XYZColorspace",
  "YCCColorspace",
  "YIQColorspace",
  "YPbPrColorspace",
  "YUVColorspace",
  "CMYKColorspace",
  "sRGBColorspace",
  "HSLColorspace",
  "HWBColorspace",
  "LABColorspace",
  "CineonLogRGBColorspace",
  "Rec601LumaColorspace",
  "Rec601YCbCrColorspace",
  "Rec709LumaColorspace",
  "Rec709YCbCrColorspace"
})
return {
  filters = filters,
  composite_operators = composite_operators,
  colorspaces = colorspaces
}
