# Type hints for hsluv, which is a generated file so we do not want to
# modify it;
from typing import TypedDict


FloatTuple = list[float]


class Bound(TypedDict):
    slope: float
    intercept: float


def _get_bounds(l: float) -> list[Bound]:
    ...


def _distance_line_from_origin(line: Bound) -> float:
    ...


def _length_of_ray_until_intercept(theta: float, line: Bound) -> float:
    ...


def _max_safe_chroma_for_l(l: float) -> float:
    ...


def _max_chroma_for_lh(l: float, h: float) -> float:
    ...


def _dot_product(a: FloatTuple, b: FloatTuple) -> float:
    ...


def _from_linear(c: float) -> float:
    ...


def _to_linear(c: float) -> float:
    ...


def xyz_to_rgb(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def rgb_to_xyz(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def _y_yo_l(y: float) -> float:
    ...


def _l_to_y(l: float) -> float:
    ...


def xyz_to_luv(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def luv_to_xyz(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def lch_to_luv(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def hsluv_to_lch(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def lch_to_hsluv(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def hpluv_to_lch(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def lch_to_hpluv(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def rgb_to_hex(_hx_tuple: FloatTuple) -> str:
    ...


def hex_to_rgb(hex: str) -> FloatTuple:
    ...


def lch_to_rgb(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def rgb_to_lch(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def hsluv_to_rgb(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def rgb_to_hsluv(_hx_tuple: tuple[float, float, float]) -> FloatTuple:
    ...


def hpluv_to_rgb(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def rgb_to_hpluv(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def hsluv_to_hex(_hx_tuple: FloatTuple) -> str:
    ...


def hpluv_to_hex(_hx_tuple: FloatTuple) -> FloatTuple:
    ...


def hex_to_hsluv(s: str) -> FloatTuple:
    ...


def hex_to_hpluv(s: str) -> FloatTuple:
    ...
