import { HSLColor } from "@/types"; import chroma from "chroma-js"; import { LabColor, RGBColor } from "color-diff"; export declare class ColorUtils { /** * Generate a complementary color for a given hex color. * @param {string} hex - The hex color string (e.g., '#ff0000'). * @returns {string} The complementary hex color string. */ static getComplementaryColor(hex: string): string; /** * Generate a color palette based on a given hex color and the desired number of colors. * @param {string} hex - The hex color string (e.g., '#ff0000'). * @param {number} numColors - The number of colors in the palette. * @returns {string[]} The array of hex color strings in the palette. */ static generateComplementaryPalette(hex: string, numColors: number): string[]; /** * Convert an RGB color to a hex color string. * @param {RGBColor} rgb - The RGB color object. * @returns {string} The hex color string. */ static rgbToHex(rgb: RGBColor): string; /** * Convert a hex color to an RGB object. * @param {string} hex - The hex color string (e.g., "#ff0000"). * @returns {RGBColor} The RGB color object. */ static hexToRgb(hex: string): RGBColor; /** * Convert a LAB color to a hex color string. * @param {LabColor} lab - The LAB color object. * @returns {string} The hex color string. */ static labToHex(lab: LabColor): string; /** * Convert a hex color to a LAB object. * @param {string} hex - The hex color string (e.g., "#ff0000"). * @returns {LabColor} The LAB color object. */ private static hexToLab; /** * Convert an RGB color to an HSL color object. * @param {RGBColor} rgb - The RGB color object. * @returns {HSLColor} The HSL color object. */ static rgbToHsl(rgb: RGBColor): HSLColor; /** * Convert an HSL color to an RGB color this is an approximation to the nearest RGB color. * @param {HSLColor} hsl - The HSL color object. * @returns {RGBColor} The RGB color object. */ static hslToRgb(hsl: HSLColor): RGBColor; /** * Generate a complementary color for a given hex color. * @param {string} hex - The hex color string (e.g., '#ff0000'). * @returns {string} The hex color string of the complementary color. */ static generateComplementaryColor(hex: string): string; /** * Generate triadic colors based on a base color. * @param {string} baseColor - The base HEX color string. * @returns {string[]} An array of triadic HEX color strings. */ static generateTriadicColors(baseColor: string): string[]; /** * Generate a monochromatic color scheme based on a given hex color. * Function not working at the moment some cases are returning NaN values * @param {string} hex - The hex color string. * @param {number} numColors - The number of monochromatic colors to generate. * @returns {string[]} An array of hex color strings representing the monochromatic color scheme. */ static generateMonochromaticColors(hex: string, numColors: number): string[]; /** * Get a specified number of distinct colors from a list based on a similarity threshold. * @param {string[]} hexColors - The list of hex color strings. * @param {number} numColors - The number of distinct colors to retrieve. * @param {number} threshold - The threshold for color similarity (lower values mean more similar). * @returns {string[]} The list of distinct hex color strings. */ static getDistinctColors(hexColors: string[], numColors: number, threshold: number): string[]; /** * Generate shades of a given hex color. * @param {string} hex - The hex color string. * @param {number} numShades - The number of shades to generate. * @returns {string[]} The array of hex color strings representing the shades. */ static generateShades(hex: string, numShades: number): string[]; /** * Generate tints of a given hex color. * @param {string} hex - The hex color string. * @param {number} numTints - The number of tints to generate. * @returns {string[]} The array of hex color strings representing the tints. */ static generateTints(hex: string, numTints: number): string[]; /** * Blend two hex colors together. * @param {string} color1 - The first hex color string. * @param {string} color2 - The second hex color string. * @param {number} ratio - The ratio of blending (0 to 1). 0 means full color1, 1 means full color2. * @param {chroma.InterpolationMode} [colorSpace='lab'] - The color space to use for blending (default is 'lab'). * @returns {string} The blended hex color string. */ static blendColors(color1: string, color2: string, ratio: number, colorSpace?: chroma.InterpolationMode): string; /** * Convert a hex color to an HSL color object. * @param {string} hex - The hex color string. * @returns {HSLColor} The HSL color object. */ static hexToHsl(hex: string): HSLColor; /** * Convert an HSL color to a hex color string. * @param {HSLColor} hsl - The HSL color object. * @returns {string} The hex color string. */ static hslToHex(hsl: HSLColor): string; /** * Calculate the contrast ratio between two colors. * @param {string} color1 - The first hex color string. * @param {string} color2 - The second hex color string. * @returns {number} The contrast ratio. */ static getContrastRatio(color1: string, color2: string): number; /** * Generate a random hex color string. * @returns {string} The random hex color string. */ static generateRandomColor(): string; /** * Generate analogous colors for a given hex color. * @param {string} hex - The hex color string. * @param {number} numColors - The number of analogous colors to generate. * @returns {string[]} The array of hex color strings representing the analogous colors. */ static generateAnalogousColors(hex: string, numColors: number): string[]; } export default ColorUtils;