/** Generic implementation of the sRGB transfer function */
export declare const LINEAR_RGB = "float srgb_transfer_fn(float a) {\n  float v = abs(a);\n  return v <= 0.0031308 ? 12.92 * v : 1.055 * pow(v, (1.0 / 2.4)) - 0.055;\n}\n\nfloat srgb_inverse_transfer_fn(float a) {\n  float v = abs(a);\n  return v <= 0.04045 ? v / 12.92 : pow((v + 0.055) / 1.055, 2.4);\n}\n\nvec4 srgb_to_linear_rgb(vec4 srgb) {\n  return vec4(srgb_inverse_transfer_fn(srgb.x), srgb_inverse_transfer_fn(srgb.y), srgb_inverse_transfer_fn(srgb.z), srgb.w);\n}\n\nvec4 linear_rgb_to_srgb(vec4 linear_rgb) {\n  return vec4(srgb_transfer_fn(linear_rgb.x), srgb_transfer_fn(linear_rgb.y), srgb_transfer_fn(linear_rgb.z), linear_rgb.w);\n}\n\n// Blend 2 vec4 colors together\nvec4 avg_vec4(vec4 a, vec4 b, float w) {\n  float _w = 1.0 - w;\n  return (a * _w) + (b * w);\n}\n\nvec4 blend_srgb(vec4 a, vec4 b, float w) {\n  vec4 lrgb_a = srgb_to_linear_rgb(a);\n  vec4 lrgb_b = srgb_to_linear_rgb(b);\n  vec4 blended = linear_rgb_to_srgb(avg_vec4(a, b, w));\n  blended.w = 1.0;\n  return blended;\n}\n";
//# sourceMappingURL=rgb.d.ts.map