import type { FloatTerm, Mat3Term, Vec2Term, Vec3Term } from "@thi.ng/shader-ast";
/**
 * Takes normalized `mid` level and converts it into an exponent for gamma
 * correction using {@link levelAdjustGamma}.
 *
 * @remarks
 * Reference: https://stackoverflow.com/a/48859502/294515
 */
export declare const midLevelGamma: import("@thi.ng/shader-ast").TaggedFn1<"float", "float">;
/**
 * Inline function.  Similar to {@link midLevelGamma}, but for RGB values (with
 * potentially varying settings per channel). To be used with
 * {@link levelAdjustGammaRGB}.
 *
 * @param mid -
 */
export declare const midLevelGammaRGB: (mid: Vec3Term) => import("@thi.ng/shader-ast").Lit<"vec3">;
/**
 * Applies level remapping from `input` to `output` (each given as
 * `vec2(min,max)`) with `gamma` correction. Results will be clamped to `[0,1]`
 * range.
 */
export declare const levelAdjustGamma: import("@thi.ng/shader-ast").TaggedFn4<"float", "float", "vec2", "vec2", "float">;
/**
 * Similar to {@link levelAdjustGamma}, but for RGB values (with potentially
 * varying settings per channel).
 *
 * @remarks
 * Note: Only the first to columns of the `mat3` args will be used (for WebGL1
 * compatibility):
 *
 * - 1st column = RGB min values
 * - 2nd column = RGB max values
 */
export declare const levelAdjustGammaRGB: import("@thi.ng/shader-ast").TaggedFn4<"vec3", "vec3", "mat3", "mat3", "vec3">;
/**
 * Inline function. Similar to {@link levelAdjustGamma}, but first computes
 * gamma from given `mid` level.
 *
 * @remarks
 * Also see {@link midLevelGamma}.
 *
 * @param x - float
 * @param mid - float
 * @param input - vec2(min,max)
 * @param output - vec2(min,max)
 */
export declare const levelAdjustMid: (x: FloatTerm, mid: FloatTerm, input: Vec2Term, output: Vec2Term) => import("@thi.ng/shader-ast").FnCall<"float">;
/**
 * Inline function. Similar to {@link levelAdjustMid}, but for RGB values (with
 * potentially varying settings per channel).
 *
 * @remarks
 * Also see {@link levelAdjustGammaRGB}, {@link midLevelGammaRGB}.
 *
 * @param x -
 * @param mid -
 * @param input -
 * @param output -
 */
export declare const levelAdjustMidRGB: (x: Vec3Term, mid: Vec3Term, input: Mat3Term, output: Mat3Term) => import("@thi.ng/shader-ast").FnCall<"vec3">;
//# sourceMappingURL=levels.d.ts.map