import { ThemeColorSchemes, ThemeCustomColors } from '../types'; /** * Generates a full ThemeColorSchemes object (light and dark modes) based on a seed color * and optional custom semantic colors. * * Internally uses the Material Design 3 `themeFromSourceColor()` generator. Each color is blended * toward the source hue and expanded into a full set of roles: main, `on*`, `Container`, * `onContainer`, `Fixed`, `onFixed`, `FixedDim`, and `onFixedVariant`. * * Built-in defaults (`info`, `warning`, `success`) are always included unless overridden. * * @remarks * Each entry in `colors` accepts two forms: * * - **String** — seed hex used to generate the full MD3 tonal palette. All roles are MD3-computed. * ```ts * { info: '#2196f3' } * ``` * * - **Object** — allows exact color overrides per mode: * - `main.light` / `main.dark` — overrides the primary role token. `dark` defaults to `light` if omitted. * - `on` color is derived automatically from the overridden color's luminance (HCT tone < 50 → white, ≥ 50 → near-black) * unless provided explicitly via `{ color, on }`. * - `fixed` — controls the `Fixed` / `onFixed` tokens: * - omitted: inherited from `main` override * - `'preserve'`: keeps the MD3-generated values * - object `{ light, dark? }`: explicit override, same rules as `main` * - `Container` roles are always MD3-generated and cannot be overridden here. * ```ts * { brandBlue: { main: { light: '#0057FF' }, fixed: 'preserve' } } * { brandBlue: { main: { light: { color: '#0057FF', on: '#FFD600' } } } } * ``` * * @param seedColor - Hex string used as the MD3 source color for the primary palette. Defaults to `#6750A4`. * @param colors - Optional map of semantic color configs (core + augmented via `CustomColors`). * * @returns A fully resolved `ThemeColorSchemes` object for light and dark modes. * Also updates the global color registry via `setColorRegistry()`. * * @example * ```ts * const schemes = generateMaterialColors('#6200ee', { * info: '#2196f3', * brandBlue: { main: { light: '#0057FF', dark: '#0057FF' } }, * brandBlueYellow: { main: { light: { color: '#0057FF', on: '#FFD600' } } }, * }); * const primary = schemes.light.primary; * const brandBlue = schemes.dark.brandBlue; * const onBrandBlueYellow = schemes.light.onBrandBlueYellow; // '#FFD600' * ``` * * @category Theme */ export declare function generateMaterialColors(seedColor?: string, colors?: ThemeCustomColors): ThemeColorSchemes;