import type { FnN3, FnU4 } from "@thi.ng/api";
import type { Color, ColorMixFn, TypedColor } from "./api.js";
/**
 * HOF color mix function. Takes 4 scalar mix fns (one per color channel) and
 * returns new {@link ColorMixFn}.
 *
 * @param x -
 * @param y -
 * @param z -
 * @param alpha -
 */
export declare const defMix: FnU4<FnN3, ColorMixFn>;
/**
 * Single channel interpolation for (normalized) hues. Always interpolates via
 * smallest angle difference, i.e. such that the effective `abs(a-b) <= 0.5`.
 *
 * @param a - start hue in `[0,1)` interval
 * @param b - end hue in `[0,1)` interval
 * @param t - interpolation factor
 */
export declare const mixH: FnN3;
/**
 * Single channel linear interpolation function.
 *
 * @param a -
 * @param b -
 * @param t -
 */
export declare const mixN: FnN3;
export declare const mixHNNN: ColorMixFn;
export declare const mixNNHN: ColorMixFn;
/**
 * Channelwise linear interpolation between colors `a` and `b` using `t` `[0,1]`
 * as blend factor.
 *
 * @param out -
 * @param a -
 * @param b -
 * @param t -
 */
export declare const mixNNNN: ColorMixFn;
/**
 * Channelwise and {@link ColorMode}-aware interpolation between colors `a` and
 * `b` using `t` `[0,1]` as blend factor. `a` and `b` MUST be of same color
 * type.
 *
 * @remarks
 * If `out` is null, the resulting color will be written back into `a`.
 *
 * Any hue channel will always be interpolated using the smallest angle
 * difference (using {@link mixH}).
 *
 * The [thi.ng/math](https://thi.ng/thi.ng/math) package provides various easing
 * functions to create non-linear interpolations. For example:
 *
 * @example
 * ```ts tangle:../export/mix.ts
 * import { mix, rgb, RED, GREEN } from "@thi.ng/color";
 * import { circular } from "@thi.ng/math";
 *
 * console.log(
 *   mix([], rgb("#f00"), rgb("#0f0"), 0.5)
 * );
 * // [ 0.5, 0.5, 0, 1 ]
 *
 * console.log(
 *   mix([], rgb(RED), rgb(GREEN), circular(0.5))
 * );
 * // [ 0.1339745962155614, 0.8660254037844386, 0, 1 ]
 * ```
 *
 * @param out -
 * @param a -
 * @param b -
 * @param t -
 */
export declare const mix: import("@thi.ng/defmulti").MultiFn4<Color | null, TypedColor<any>, TypedColor<any>, number, Color>;
//# sourceMappingURL=mix.d.ts.map