diff --git a/types/src/interpolation.d.ts b/types/src/interpolation.d.ts index b2b3e21f1..e50b35762 100644 --- a/types/src/interpolation.d.ts +++ b/types/src/interpolation.d.ts @@ -1,5 +1,6 @@ import Color, { ColorTypes } from "./color"; import ColorSpace from "./space"; +import { Methods } from "./deltaE/index"; export type Range = ((percentage: number) => number) & { rangeArgs: { colors: [Color, Color]; options: Record }; @@ -12,6 +13,7 @@ export interface RangeOptions { outputSpace?: string | ColorSpace | undefined; progression?: ((percentage: number) => number) | undefined; premultiplied?: boolean | undefined; + hue?: "longer" | "shorter" | "increasing" | "decreasing" | "raw" | undefined; } export function range(range: Range, options?: RangeOptions): Range; @@ -39,6 +41,14 @@ export function mix( options?: MixOptions ): number; -export function steps(color1: ColorTypes | Range, color2: ColorTypes): Color[]; +export interface StepsOptions extends RangeOptions { + maxDeltaE?: number | undefined; + deltaEMethod?: Methods | undefined; + steps?: number | undefined; + maxSteps?: number | undefined; +} + +export function steps(color1: ColorTypes, color2: ColorTypes, options?: StepsOptions): Color[]; +export function steps(range: Range, options?: StepsOptions): Color[]; export function register(color: typeof Color): void; diff --git a/types/test/interpolation.ts b/types/test/interpolation.ts index d50565f11..c0b4340f3 100644 --- a/types/test/interpolation.ts +++ b/types/test/interpolation.ts @@ -28,6 +28,7 @@ range("red", "blue", { outputSpace: "srgb_linear", progression: (_: number) => 1, premultiplied: false, + hue: "raw", }); // @ts-expect-error @@ -47,7 +48,24 @@ mix("red", "blue", { }); steps("red", "blue"); // $ExpectType Color[] -steps(r, " blue"); // $ExpectType Color[] +// $ExpectType Color[] +steps("red", "blue", { + maxDeltaE: 1, + deltaEMethod: "2000", + steps: 10, + maxSteps: 100, +}); +steps(r); // $ExpectType Color[] +// $ExpectType Color[] +steps(r, { + maxDeltaE: 1, + deltaEMethod: "2000", + steps: 10, + maxSteps: 100, +}); + +// @ts-expect-error +steps(r, "blue"); // $ExpectType Color[] // @ts-expect-error register();