import { type RequireAtLeastOne } from 'type-fest';
import { type ColorInit, type ColorThemeInit, type ColorThemeOverride } from './color-theme-init.js';
import { themeDefaultKey, type ColorTheme, type NoRefColorInit } from './color-theme.js';
/**
 * Input for {@link defineColorThemeOverride} color overrides.
 *
 * @category Internal
 */
export type ColorThemeOverrideInit<Theme extends ColorTheme = ColorTheme> = Omit<Partial<{
    [ColorName in keyof Theme['colors']]: ColorInit;
}>, typeof themeDefaultKey>;
/**
 * Define a color theme override. Use this to define multiple theme variations, like light mode vs
 * dark mode.
 *
 * @category Color Theme
 */
export declare function defineColorThemeOverride<const Init extends ColorThemeInit>(originalTheme: ColorTheme<Init>, overrideName: string, { defaultOverride, colorOverrides, }: Readonly<RequireAtLeastOne<{
    /** Override the default foreground and/or background colors. */
    defaultOverride: Readonly<NoRefColorInit>;
    colorOverrides: Readonly<ColorThemeOverrideInit<ColorTheme<Init>>>;
}>>): ColorThemeOverride<Init>;
