import { SlotPosition } from '../types/componentLabTypes'; /** * Canonical categorical scale for sample types, plate maps, dose-response * series and legends. Mirrors `--mint-sample-1` … `--mint-sample-9`. */ export declare const SAMPLE_COLOR_SCALE: readonly string[]; /** * Group palette as CSS tokens (3a): groups always take `--mint-sample-1` … * `--mint-sample-8`; the 9th (gray) stays out of the group cycle. */ export declare const SAMPLE_GROUP_TOKENS: readonly string[]; /** * Slot-position colors (R/G/B/Y rack positions). * Mirrors `--mint-slot-r`, `--mint-slot-g`, `--mint-slot-b`, `--mint-slot-y`. */ export declare const SLOT_COLORS: Record; /** Slot positions in their canonical display order. */ export declare const SLOT_ORDER: readonly SlotPosition[]; /** * Color utilities for deriving same-hue-family shades. * * Used by SampleSelector and other group/legend UIs where a parent color * needs to seed a gradient of related shades for its children. */ export interface Hsl { h: number; s: number; l: number; } export declare function hexToHsl(hex: string): Hsl; export declare function hslToHex(h: number, s: number, l: number): string; /** * Derive a same-hue-family shade of `parentHex` for child at `index` of `total`. * * Lightness is distributed evenly within [35, 75] so all children remain * readable on light/dark backgrounds. Hue and saturation are inherited from * the parent. With `total <= 1`, returns the parent unchanged. * * Children are ordered light → dark by index, so index 0 is the brightest * sibling and index `total - 1` is the darkest. */ export declare function deriveShade(parentHex: string, index: number, total: number): string;