import { FlowNodeAccent } from './types'; export interface ResolvedNodeAccent { /** Solid swatch fill. Identical in both colour schemes — brand colour, not themed. */ swatch: string; /** Legible foreground on `swatch`. */ swatchContrast: string; /** * Header gradient start / note fill. Solid pastel-strength wash in light, * `alpha(swatch, ~0.18)` over the theme surface in dark. */ surface: string; } /** * Resolves a `FlowNodeAccent` (a semantic DS colour key, or a bare-hex brand escape * hatch) into concrete swatch/contrast/surface values for the live colour scheme. * * This must be a hook, not a pure function: the live colour scheme has to come from * `useThemeMode()`, never from `theme.palette.mode`. Under this repo's `extendTheme` + * `colorSchemeSelector: "class"` CSS-vars setup, `theme.palette.mode` is frozen to the * build-time default and never reflects the user's actual toggle — the exact bug this * whole brief exists to avoid (see CJO `NodeCard.tsx`'s `useThemeMode()` comment, and * the WIP's `useFlowTheme.ts` bug this brief also fixes). * * `useThemeMode()` can return `'system'` (not just `'light'` | `'dark'`), so that case * is resolved explicitly against `prefers-color-scheme` rather than assuming it falls * into the light branch (a latent bug in CJO's own binary check). * * Deliberately does NOT route through `src/theme/tonal.ts`'s `resolveTonalColor` — * that function branches on `theme.palette.mode` directly and is therefore subject to * the same frozen-mode problem under this repo's provider (flagged, not fixed, by * brief `00` — owned by whoever maintains the shipped tonal components). Instead, the * semantic `main` colour is resolved the same way `resolveDarkTonal` does internally * for its own `main` lookup: `theme.palette.grey[500]` for `'default'`, otherwise * `theme.palette[accent].main`. */ export declare function useNodeAccent(accent: FlowNodeAccent): ResolvedNodeAccent;