export interface Oklch {
    l: number;
    c: number;
    h: number;
}
export interface Rgb {
    r: number;
    g: number;
    b: number;
}
/** OKLCH → linear OKLab → linear sRGB → gamma sRGB → 0..255. Pure. */
export declare function oklchToSrgb({ l, c, h }: Oklch): Rgb;
export declare function srgbToRgbString({ r, g, b }: Rgb, alpha?: number): string;
/**
 * Parse an `rgb(...)` / `rgba(...)` string into an {@link Rgb}.
 *
 * Contract: input MUST be an `rgb(...)` / `rgba(...)` string (e.g. a resolved
 * token from `getResolvedTokens`). Both modern (`rgb(r g b)`) and legacy
 * (`rgb(r, g, b)`) syntaxes are accepted. Anything else throws — this is a
 * canonical-pipeline primitive and a non-rgb input signals a real bug at the
 * call site, never a value to silently coerce to black.
 *
 * @throws {Error} if `s` is not an `rgb()` / `rgba()` string.
 */
export declare function parseRgbString(s: string): Rgb;
/** Cheap perceptual-ish distance in sRGB (sufficient for a ≤1 rounding gate). */
export declare function deltaE(a: Rgb, b: Rgb): number;
//# sourceMappingURL=color-space.d.ts.map