import { APP_COLOR_NAMES, type AppColorName } from './color-presets';
/**
 * The canonical set of Bloom theme token names — WITHOUT the leading `--`.
 *
 * This is the single source of truth for which tokens a preset produces. It
 * covers exactly the keys returned by `getPresetVars(name, mode)` (the base
 * shadcn palette plus the synthesized extended tokens: card/chart/content-area/
 * sidebar-*). The list is intentionally hand-maintained and verified by
 * `token-registry.test.ts` against the live `getPresetVars('oxy', 'light')`
 * output, so any drift in the preset shape fails CI.
 *
 * Order mirrors `getPresetVars`'s insertion order: base tokens first (in the
 * order they appear in the preset data), then the synthesized extended tokens.
 */
export declare const CANONICAL_TOKENS: readonly ["background", "foreground", "surface", "surface-foreground", "popover", "popover-foreground", "primary", "primary-foreground", "secondary", "secondary-foreground", "muted", "muted-foreground", "accent", "accent-foreground", "destructive", "border", "input", "ring", "sidebar", "card", "card-foreground", "chart-1", "chart-2", "chart-3", "chart-4", "chart-5", "content-area", "sidebar-foreground", "sidebar-primary", "sidebar-primary-foreground", "sidebar-accent", "sidebar-accent-foreground", "sidebar-border", "sidebar-ring"];
/** A canonical token name (no leading `--`). */
export type CanonicalToken = (typeof CANONICAL_TOKENS)[number];
/**
 * Convert a shadcn-style HSL triple (`'H S% L%'`, optionally with an alpha tail
 * `'H S% L% / A'`) into an sRGB `rgb(...)` string.
 *
 * Standard HSL→sRGB math with integer-rounded channels and modern
 * space-separated output (`rgb(r g b)` / `rgb(r g b / a)`). This is the SINGLE
 * conversion the whole library uses — web document writes, web scope vars, and
 * native `rootVariables` all flow through `getResolvedTokens`, which calls this.
 * The byte-for-byte output is frozen by the golden parity fixture
 * (`__fixtures__/golden-resolved-tokens.json`), so the visible palette cannot
 * drift.
 *
 * Task 2's `oklchToSrgb` (in `color-space.ts`) stays available for a FUTURE
 * OKLCH re-authoring of the seed palette; it is intentionally NOT used here —
 * routing through OKLCH would shift the rounded channels off the frozen palette.
 *
 * Pure function — no side effects.
 */
export declare function hslToSrgb(triple: string): string;
/**
 * Resolve a preset's canonical runtime color tokens to sRGB `rgb(...)` strings.
 *
 * THE single source of runtime color tokens for the whole library, on BOTH web
 * and native. Takes the raw triple map from `getPresetVars(preset, mode)` (base
 * + extended) and converts every value that looks like an HSL triple via
 * `hslToSrgb`. Non-triple values (already-resolved colors, length/radius tokens)
 * pass through unchanged. Keys retain the `--` prefix, so each `--x` token IS a
 * full CSS color — no resolved-color companion universe, no per-platform wrapping.
 *
 * The result is frozen by the golden parity fixture
 * (`__fixtures__/golden-resolved-tokens.json`), guaranteeing the visible palette
 * matches the previous resolved-color pipeline byte-for-byte.
 */
export declare function getResolvedTokens(preset: AppColorName, mode: 'light' | 'dark'): Record<string, string>;
export { APP_COLOR_NAMES };
//# sourceMappingURL=token-registry.d.ts.map