import { Color } from './colors'; /** A red/green/blue color object. Each property is a number from 0 to 255. */ interface RGB { /** The red component. */ r: number; /** The green component. */ g: number; /** The blue component. */ b: number; } /** * Utilities for working with {@link Color} names from the {@link colors} enum. * * @docsPath UI/utils/colorUtils */ interface ColorUtils { /** * Given a {@link Color}, return the hex color value for that color, or null if the value isn't a {@link Color} * * @param colorString * @example * ```js * import {colorUtils, colors} from '@airtable/blocks/ui'; * * colorUtils.getHexForColor(colors.RED); * // => '#ef3061' * * colorUtils.getHexForColor('uncomfortable beige'); * // => null * ``` */ getHexForColor(colorString: Color): string; /** */ getHexForColor(colorString: string): null | string; /** * Given a {@link Color}, return an {@link RGB} object representing it, or null if the value isn't a {@link Color} * * @param colorString * @example * ```js * import {colorUtils, colors} from '@airtable/blocks/ui'; * * colorUtils.getRgbForColor(colors.PURPLE_DARK_1); * // => {r: 107, g: 28, b: 176} * * colorUtils.getRgbForColor('disgruntled pink'); * // => null * ``` */ getRgbForColor(colorString: Color): RGB; /** */ getRgbForColor(colorString: string): RGB | null; /** * Given a {@link Color}, returns true or false to indicate whether that color should have light text on top of it when used as a background color. * * @param colorString * @example * ```js * import {colorUtils, colors} from '@airtable/blocks/ui'; * * colorUtils.shouldUseLightTextOnColor(colors.PINK_LIGHT_1); * // => false * * colorUtils.shouldUseLightTextOnColor(colors.PINK_DARK_1); * // => true * ``` */ shouldUseLightTextOnColor(colorString: string): boolean; } declare const colorUtils: ColorUtils; export default colorUtils;