import type { PlanetConfig } from '../../types/body.types'; /** * Parse a `#rrggbb` (or `rrggbb`) color string into its `[r, g, b]` byte * components in the [0, 255] range. */ export declare function hexToRgb(hex: string): [number, number, number]; /** * Format RGB byte components as a `#rrggbb` hex string. Each component is * clamped to [0, 255] and rounded to the nearest integer before encoding. */ export declare function rgbToHex(r: number, g: number, b: number): string; /** * Apply warm/cool color shift + luminance to a palette hex color. * colorMix: 0=cooler, 0.5=neutral, 1=warmer. */ export declare function shiftColor(hex: string, colorMix: number, luminance: number): string; /** * Resolves the rocky planet's shader colour anchors from the caller-supplied * `terrainColorLow` / `terrainColorHigh` config fields. * * The lib no longer carries any resource vocabulary, so anchor selection is * the caller's concern: callers compute defaults (e.g. from the body's mean * equilibrium temperature) and write them back onto the config before * calling `useBody`. The playground ships a reference implementation via * `deriveTemperatureAnchors`. * * When the caller omits the anchors, the palette falls back to neutral * charcoal / pewter defaults. Lava colour is not part of this resolver * anymore — it lives on `BodyVariation.lavaColor` (caller-pushable). */ export declare function rockyColors(config: PlanetConfig): { colorA: string; colorB: string; }; /** * Crack color = same hue/saturation as the planet surface, but with a * target lightness far from the surface average so cracks are always visible. */ export declare function rockyCrackColor(colorA: string, colorB: string): string; /** * Returns the four band-colour hex stops (A/B/C/D) consumed by the gas * shader's uniforms. The lib no longer blends molecule archetypes — callers * pass the already-blended stops through `config.bandColors`. A neutral * warm-tan default is substituted when the field is omitted. */ export declare function gasColorPalette(config: PlanetConfig): Record; /** * Returns the two shader anchor colours (`base`, `accent`) for a metallic * body's procedural fragment shader (smooth-sphere view). Reads them from * the caller-supplied `metallicBands` (first and last band — deep + peak); * falls back to a neutral grey pair when the caller omits the bands. * * The lib no longer ships a temperature → composition colour map — the * caller owns that catalogue and writes the result back onto * `BodyConfig.metallicBands` (see the playground's metallic composition * helper for a reference implementation). */ export declare function metallicShaderColors(config: PlanetConfig): { baseA: string; baseB: string; }; //# sourceMappingURL=bodyColorDeriver.d.ts.map