/**
 * Hex-with-alpha utilities — keeps all color storage in the canonical
 * #RRGGBB or #RRGGBBAA format. CSS Color Module Level 4 (supported by
 * all modern browsers) accepts 8-digit hex natively, so we never need
 * to fall back to rgba() strings.
 */
export interface HexAlphaParts {
    /** Normalized 6-digit hex (lowercase, with leading #). */
    readonly hex6: string;
    /** Alpha channel in the [0, 1] range. */
    readonly alpha: number;
}
/** True when value matches `#RRGGBB` or `#RRGGBBAA` (case-insensitive). */
export declare function isHex6Or8(value: string): boolean;
/** True when value matches `#RGB`, `#RRGGBB`, or `#RRGGBBAA`. */
export declare function isAnyHex(value: string): boolean;
/**
 * Expand a 3-digit hex to its 6-digit form (`#abc` → `#aabbcc`).
 * Returns the input unchanged if already 6 or 8 digits.
 */
export declare function expandHex(value: string): string;
/**
 * Combine a 6-digit hex and an alpha (0..1) into an 8-digit hex.
 * Alpha is clamped to [0, 1] and rounded to the nearest byte (0..255).
 */
export declare function hexWithAlpha(hex6OrAny: string, alpha: number): string;
/**
 * Split a hex value into its 6-digit base and its alpha (0..1).
 * Accepts `#RGB`, `#RRGGBB`, or `#RRGGBBAA`. Falls back to opaque
 * black when the input is invalid (callers can use `isAnyHex` to
 * decide whether the fallback is acceptable).
 */
export declare function parseHexAlpha(value: string): HexAlphaParts;
/**
 * One-shot migration from legacy `rgba(r,g,b,a)` strings to the canonical
 * `#RRGGBBAA` format. Returns the input unchanged when it is not a valid
 * rgba() string — callers can chain this with `isAnyHex` to detect failure.
 */
export declare function rgbaToHex8(rgba: string): string;
//# sourceMappingURL=hexAlpha.d.ts.map