@tsports/go-colorful
Version:
A TypeScript port of the go-colorful package for working with colors
142 lines • 7.4 kB
TypeScript
/**
* Go-style API wrapper that provides identical naming and function signatures to the Go colorful package.
* This module wraps the TypeScript implementation to match Go conventions exactly.
*/
import { Color as TSColor } from './color';
import * as TSColorful from './index';
export declare class Color {
R: number;
G: number;
B: number;
constructor(R: number, G: number, B: number);
toTSColor(): TSColor;
static fromTSColor(c: TSColor): Color;
RGBA(): [number, number, number, number];
RGB255(): [number, number, number];
values(): [number, number, number];
IsValid(): boolean;
Clamped(): Color;
DistanceRgb(c2: Color): number;
DistanceLinearRgb(c2: Color): number;
DistanceLinearRGB(c2: Color): number;
DistanceRiemersma(c2: Color): number;
AlmostEqualRgb(c2: Color): boolean;
DistanceLab(c2: Color): number;
DistanceCIE76(c2: Color): number;
DistanceLuv(c2: Color): number;
DistanceHSLuv(c2: Color): number;
DistanceHPLuv(c2: Color): number;
DistanceCIE94(c2: Color): number;
DistanceCIEDE2000(c2: Color): number;
DistanceCIEDE2000klch(c2: Color, kL: number, kC: number, kH: number): number;
BlendRgb(c2: Color, t: number): Color;
BlendLinearRgb(c2: Color, t: number): Color;
BlendHsv(c2: Color, t: number): Color;
BlendLab(c2: Color, t: number): Color;
BlendLuv(c2: Color, t: number): Color;
BlendHcl(c2: Color, t: number): Color;
BlendLuvLCh(c2: Color, t: number): Color;
BlendOkLab(c2: Color, t: number): Color;
BlendOkLch(c2: Color, t: number): Color;
Hsv(): [number, number, number];
Hsl(): [number, number, number];
Hex(): string;
LinearRgb(): [number, number, number];
FastLinearRgb(): [number, number, number];
Xyz(): [number, number, number];
Xyy(): [number, number, number];
XyyWhiteRef(wref: [number, number, number]): [number, number, number];
Lab(): [number, number, number];
LabWhiteRef(wref: [number, number, number]): [number, number, number];
Luv(): [number, number, number];
LuvWhiteRef(wref: [number, number, number]): [number, number, number];
Hcl(): [number, number, number];
HclWhiteRef(wref: [number, number, number]): [number, number, number];
LuvLCh(): [number, number, number];
LuvLChWhiteRef(wref: [number, number, number]): [number, number, number];
OkLab(): [number, number, number];
OkLch(): [number, number, number];
HSLuv(): [number, number, number];
HPLuv(): [number, number, number];
}
export declare const Delta: number;
export declare const D65: [number, number, number];
export declare const D50: [number, number, number];
export declare function MakeColor(col: {
RGBA(): [number, number, number, number];
}): [Color, boolean];
export declare function Hex(hexCode: string): Color;
export declare function Hsv(h: number, s: number, v: number): Color;
export declare function Hsl(h: number, s: number, l: number): Color;
export declare function Lab(l: number, a: number, b: number): Color;
export declare function LabWhiteRef(l: number, a: number, b: number, wref: [number, number, number]): Color;
export declare function Luv(l: number, u: number, v: number): Color;
export declare function LuvWhiteRef(l: number, u: number, v: number, wref: [number, number, number]): Color;
export declare function Hcl(h: number, c: number, l: number): Color;
export declare function HclWhiteRef(h: number, c: number, l: number, wref: [number, number, number]): Color;
export declare function LuvLCh(l: number, c: number, h: number): Color;
export declare function LuvLChWhiteRef(l: number, c: number, h: number, wref: [number, number, number]): Color;
export declare function Xyz(x: number, y: number, z: number): Color;
export declare function Xyy(x: number, y: number, Y: number): Color;
export declare function LinearRgb(r: number, g: number, b: number): Color;
export declare function FastLinearRgb(r: number, g: number, b: number): Color;
export declare function OkLab(l: number, a: number, b: number): Color;
export declare function OkLch(l: number, c: number, h: number): Color;
export declare function HSLuv(h: number, s: number, l: number): Color;
export declare function HPLuv(h: number, s: number, l: number): Color;
export declare function FastWarmColor(): Color;
export declare function WarmColor(): Color;
export declare function FastHappyColor(): Color;
export declare function HappyColor(): Color;
export declare function FastWarmColorWithRand(rand: RandInterface): Color;
export declare function WarmColorWithRand(rand: RandInterface): Color;
export declare function FastHappyColorWithRand(rand: RandInterface): Color;
export declare function HappyColorWithRand(rand: RandInterface): Color;
export declare function FastWarmPalette(colorsCount: number): Color[];
export declare function WarmPalette(colorsCount: number): [Color[], Error | null];
export declare function FastHappyPalette(colorsCount: number): Color[];
export declare function HappyPalette(colorsCount: number): [Color[], Error | null];
export declare function SoftPalette(colorsCount: number): [Color[], Error | null];
export declare function SoftPaletteEx(colorsCount: number, settings: TSColorful.SoftPaletteSettings): [Color[], Error | null];
export declare function FastWarmPaletteWithRand(colorsCount: number, rand: RandInterface): Color[];
export declare function WarmPaletteWithRand(colorsCount: number, rand: RandInterface): [Color[], Error | null];
export declare function FastHappyPaletteWithRand(colorsCount: number, rand: RandInterface): Color[];
export declare function HappyPaletteWithRand(colorsCount: number, rand: RandInterface): [Color[], Error | null];
export declare function SoftPaletteWithRand(colorsCount: number, rand: RandInterface): [Color[], Error | null];
export declare function SoftPaletteExWithRand(colorsCount: number, settings: TSColorful.SoftPaletteSettings, rand: RandInterface): [Color[], Error | null];
export declare function Sorted(colors: Color[]): Color[];
export interface RandInterface {
Float64(): number;
Intn(n: number): number;
}
export type SoftPaletteSettings = TSColorful.SoftPaletteSettings;
export declare class HexColor {
Color: Color;
constructor(color: Color);
static FromColor(color: Color): HexColor;
ToColor(): Color;
Hex(): string;
Scan(value: unknown): void;
Value(): string;
MarshalJSON(): string;
UnmarshalJSON(data: string): void;
}
/**
* FastWarmPaletteSeeded generates a warm palette with a specific seed for deterministic output.
* This function can produce identical results to Go's FastWarmPalette when using the same seed.
*
* @param colorsCount Number of colors to generate
* @param seed Random seed (default: 1, same as Go's default)
* @returns Array of warm colors
*/
export declare function FastWarmPaletteSeeded(colorsCount: number, seed?: number): Color[];
/**
* FastHappyPaletteSeeded generates a happy palette with a specific seed for deterministic output.
* This function can produce identical results to Go's FastHappyPalette when using the same seed.
*
* @param colorsCount Number of colors to generate
* @param seed Random seed (default: 1, same as Go's default)
* @returns Array of happy colors
*/
export declare function FastHappyPaletteSeeded(colorsCount: number, seed?: number): Color[];
//# sourceMappingURL=go-style.d.ts.map