import { type PartialWithUndefined, type RequiredAndNotNull } from '@augment-vir/common'; import { ContrastLevelName } from '@electrovir/color'; import { type CssVarDefinitions, type SingleCssVarDefinition } from 'lit-css-vars'; import { type ColorInitValue } from './color-theme-init.js'; import { type NoRefColorInit } from './color-theme.js'; /** @category Internal */ export type ColorPaletteVars = CssVarDefinitions>; /** @category Internal */ export type PaletteColor = { suffix: string | undefined; prefix: string; colorName: string; definition: SingleCssVarDefinition; cssVarName: string; }; /** @category Internal */ export type ColorGroups = Record; /** * Black and white color values. * * @category Internal */ export declare const defaultOmittedColorGroupColorValues: string[]; /** @category Internal */ export declare function groupColors(colors: Readonly, /** * Color values to omit from the grouping. Defaults to * {@link defaultOmittedColorGroupColorValues}. * * @default defaultOmittedColorGroupColorValues */ omittedColorValues?: ReadonlyArray): ColorGroups; /** @category Internal */ export declare function extractPaletteColor(color: Readonly): PaletteColor; /** @category Internal */ export declare function extractParam(possibleParams: ReadonlyArray | Readonly>, { mapFrom, mapTo, }: Readonly; mapFrom: Record; }>>): T[]; /** @category Internal */ export type ArrayOrSelectParam = ReadonlyArray | Readonly>>; /** @category Internal */ export declare const defaultLightThemePair: RequiredAndNotNull; /** @category Internal */ export declare const defaultContrastLevels: Readonly>; /** * Extra contrast levels generated by {@link buildColorTheme} beyond the standard `ContrastLevelName` * values. `highest-contrast` always picks the palette color with the most contrast against the * fixed color; `lowest-contrast` always picks the closest. * * @category Internal */ export declare enum ExtremeContrastLevel { HighestContrast = "highest-contrast", LowestContrast = "lowest-contrast" } /** * Options for {@link buildColorTheme}. * * @category Internal */ export type BuildLowLevelColorThemeOptions = PartialWithUndefined<{ /** * Theme var prefix. * * @default 'vir' */ prefix: string; /** * The default theme colors for {@link defineColorTheme}. Defaults to * {@link defaultLightThemePair}. * * @default defaultLightThemePair */ defaultTheme: RequiredAndNotNull; /** * All font weights to cross colors with. Defaults to {@link defaultContrastLevels}. * * @default defaultContrastLevels */ crossContrastLevels: Readonly>; /** * Color values to omit from the grouping. Defaults to * {@link defaultOmittedColorGroupColorValues}. * * @default defaultOmittedColorGroupColorValues */ omittedColorValues: ReadonlyArray; }>; /** * Creates a color theme from a color palette. * * @category Color Theme */ export declare function buildColorTheme(colorPalette: Readonly, { omittedColorValues, crossContrastLevels, prefix, }?: Readonly): { defaultLight: import("./color-theme.js").ColorTheme}-${Lowercase}`, ((Required> & Partial>) | (Required> & Partial>)) & {}>>; darkOverride: import("./color-theme-init.js").ColorThemeOverride}-${Lowercase}`, ((Required> & Partial>) | (Required> & Partial>)) & {}>>; };