import { ParsedColor } from './ColorParser'; import { ColorGenerator } from './ColorGenerator'; export type ColorFormat = 'rgb' | 'rgba' | 'hex' | 'hsl' | 'hsla'; export declare class Color { private readonly _r; private readonly _g; private readonly _b; private readonly _a; get r(): number; get g(): number; get b(): number; get a(): number; private constructor(); /** * Создает цвет из строкового представления */ static fromString(value: string): Color; /** * Создает цвет из RGB компонентов */ static fromRgb(r: number, g: number, b: number, a?: number): Color; /** * Создает цвет из HEX строки */ static fromHex(hex: string): Color; /** * Создает цвет из HSL строки */ static fromHsl(hsl: string): Color; /** * Создает цвет из UUID (использует генератор) */ static fromUuid(uuid: string, palette?: keyof typeof ColorGenerator.getPalettes): Color; /** * Создает цвет из строки с хешированием */ static fromHashString(str: string): Color; /** * Возвращает новый цвет, осветленный на указанное количество единиц */ lighten(units: number): Color; /** * Возвращает новый цвет, затемненный на указанное количество единиц */ darken(units: number): Color; /** * Изменяет яркость цвета путем умножения каждого канала на коэффициент * @param lum - Коэффициент изменения яркости (от -1 до 1, где отрицательные значения затемняют, положительные - осветляют) * @returns Новый объект Color с измененной яркостью * * @example * ```ts * const color = Color.fromString('#ff0000'); * const lighter = color.luminance(0.2); // на 20% светлее * const darker = color.luminance(-0.2); // на 20% темнее * ``` */ luminance(lum: number): Color; /** * Возвращает новый цвет с измененной яркостью (процентное изменение) */ adjustBrightness(percent: number): Color; /** * Возвращает новый цвет с измененным альфа-каналом */ alpha(value: number): Color; /** * Возвращает относительную яркость цвета (luminance) */ getLuminance(): number; /** * Возвращает контраст между текущим цветом и переданным */ getContrast(other: Color | string): number; /** * Проверяет, достаточно ли контрастен цвет для белого текста */ isLight(): boolean; /** * Возвращает наиболее контрастный цвет (черный или белый) */ getContrastColor(): Color; /** * Возвращает новый цвет, смешанный с другим цветом */ mix(other: Color | string, weight?: number): Color; /** * Возвращает цвет в разных форматах */ toString(format?: ColorFormat): string; toRgbString(includeAlpha?: boolean): string; toHexString(includeAlpha?: boolean): string; toHslString(includeAlpha?: boolean): string; /** * Возвращает HSL представление цвета */ toHsl(): [number, number, number]; private clamp; /** * @deprecated Use {@link Color.toRgbString} instead */ rgbString(): string; /** * @deprecated Use {@link Color.toHslString} instead */ hslString(): string; /** * @deprecated Use {@link Color.toHexString} instead */ hexString(): string; /** * @deprecated Use getters `color.r`, `color.g`, `color.b`, `color.a` instead. * This method will be removed in future versions. * * @returns {ParsedColor} Object with r, g, b, a properties */ rgb(): ParsedColor; /** * @deprecated Use {@Link Color.fromString} or {@Link ColorParser.parse} instead. */ static parseColor(value: string): ParsedColor; /** * @deprecated Use {@Link Color.fromHsl} or ColorParser.parse() instead. */ static hslToRgb(value: string): ParsedColor; /** * @deprecated Use {@Link Color.fromString} with named colors instead. */ static getHextByWebColor(value: string): string | undefined; /** * @deprecated Do not use. */ static intToRGB(i: number): string; /** * @deprecated Use {@Link Color.fromUuid} */ static uuidToColor(uuid: string): Color; }