import type { ColorOption } from '../types/colors.js'; /** * Pure runtime helpers for color identity and id validation. No Vue/Nuxt * deps — safe to import from any layer (runtime components, editor * providers, agent tools, tests). * * Id space: * - Flat color: `` (no dot) * - Ramped color: `.` (shade-qualified) * * The bare `` form for a ramped color is NOT a valid color id anywhere * in the system. Everything that emits ids — the editor's `ColorDropdown`, * the chart helpers (`getColorIdAtIndex`), the agent's `chartColorEnum` — * uses the canonical shade-qualified form. * * Hex resolution at runtime goes through * `useBlokkliRuntimeConfig().resolveColorHex(id)`, which reads the merged * view directly from `app.config.blokkli.colorOptions`. No merge function * lives here — Nuxt's app.config layer already handles override merging. */ export declare const FALLBACK_HEX = "#888888"; export declare function parseColorId(id: string): { baseId: string; shadeId: string | undefined; }; /** * Canonical id for a color option: * - Flat color: the bare id. * - Ramped color: `.`. Falls back to the first declared * shade if none is marked `isMain`. */ export declare function canonicalColorId(option: ColorOption): string; export declare function findColorOption(id: string, options: ColorOption[]): ColorOption | undefined; /** * Strict id validity: bare for flat colors, `.` for ramped * colors with the shade actually declared. Bare ids for ramped colors and * shade-qualified ids for flat colors both return false. */ export declare function isColorIdValid(id: string, options: ColorOption[]): boolean;