/**
 * Spec pass/fail die colours, shared by the value-map renderer and the spec legend so both use one
 * definition. Pass = green, fail-low (below limitLow) = blue, fail-high (above limitHigh) = red.
 */
export declare const SPEC_PASS_FILL = "#2ecc71";
export declare const SPEC_FAIL_LOW = "#3498db";
export declare const SPEC_FAIL_HIGH = "#e74c3c";
/**
 * Shared categorical palette for hard and soft bin colouring.
 * Index 0 is the no-data grey sentinel. Indices 1–63 are perceptually
 * spread colours generated via golden-angle HSL stepping.
 * Hard and soft bins use different hash salts so the same bin number
 * maps to different colours in each scheme.
 */
export declare const BIN_PALETTE: readonly string[];
/** Wang hash — maps any integer to a well-distributed unsigned 32-bit value. Shared with colorSchemes. */
export declare function wangHash(n: number): number;
/** Categorical colour for a hard bin. No-data handling is the caller's responsibility. */
export declare function hardBinColor(bin: number): string;
/** Linear interpolation across RGB keypoints for t ∈ [0, 1]. */
export declare function lerpKp(kp: readonly [number, number, number][], t: number): string;
export declare const VIRIDIS: readonly [number, number, number][];
/** Map t ∈ [0, 1] to a Viridis RGB colour string. */
export declare function valueToViridis(t: number): string;
/** Categorical colour for a soft bin. No-data handling is the caller's responsibility. */
export declare function softBinColor(bin: number): string;
/**
 * Categorical colour for the `index`-th distinct value of an active
 * `'metadata'` field, where `index` comes from sorting the field's distinct
 * values alphabetically (deterministic — never dependent on die array
 * iteration order). Ordered assignment, not hashing, for the first
 * `METADATA_PALETTE.length` slots — this maximizes distinctness for the
 * common case of a handful of categories, unlike a hash which doesn't
 * optimize for a *known* small set. Falls back to the same
 * hash+`BIN_PALETTE` mechanism `hardBinColor`/`softBinColor` use (a new
 * salt) for wafers with an unusually large category count.
 */
export declare function metadataValueColor(index: number): string;
/** Categorical greyscale shades for hard bins. Index 0 = no data. */
export declare const HARD_BIN_GREY: readonly string[];
export declare function hardBinGreyscale(bin: number): string;
/** Map t ∈ [0, 1] to a greyscale rgb string (range 30–230 to avoid pure black/white). */
export declare function valueToGreyscale(t: number): string;
/** Return '#000000' or '#ffffff' for maximum contrast against the given colour. */
export declare function contrastTextColor(cssColor: string): '#000000' | '#ffffff';
//# sourceMappingURL=colorMap.d.ts.map