import { type ColorType } from './isColor'; export type HEXA = [h: string, e: string, x: string, a: string]; export type RGBA = [r: number, g: number, b: number, a: number]; export type HSVA = [h: number, s: number, v: number, a: number]; export type HSLA = [h: number, s: number, l: number, a: number]; /** 印刷四分色模式 */ export type CMYK = [c: number, m: number, y: number, k: number]; export interface ColorParse { value: T; type: ColorType; toHexa(): HEXA; toHexaString(): string; toRgba(): RGBA & { max: MaxNum['rgba']; }; toRgbaString(): string; toHsla(): HSLA & { max: MaxNum['hsla']; }; toHslaString(): string; toCmyk(): CMYK & { max: MaxNum['cmyk']; }; toCmykString(): string; toHsva(): HSVA & { max: MaxNum['hsva']; }; toHsvaString(): string; /** * 互补颜色 * @returns {string} color */ complement(): string; setValue(value: T): ColorParse; setAlpha(alpha: number): ColorParse; } export type MaxNum = { cmyk: [100, 100, 100, 100]; hsla: [360, 100, 100, 1]; hsva: [360, 100, 100, 1]; rgba: [255, 255, 255, 1]; }; export declare const maxNum: MaxNum; export type Color = T extends 'cmyk' ? ColorParse : T extends 'rgba' ? ColorParse : T extends 'hsla' ? ColorParse : T extends 'hexa' ? ColorParse : T extends 'hsva' ? ColorParse : ColorParse; /** * 将表示颜色的字符串解析为 HSV 数组, 通过toString()方法获取字符串值 * 当前支持的类型是 cmyk、rgba、hsla、hexa、hsva、cmyk * @param {string} str color * @return {*} HSVA */ export declare function colorParse(str: string): Color;