import { NmiTheme, LayoutSpacing, TextSize, RadiusSize, Appearance } from '../types'; /** * Flattens a nested NmiTheme object into CSS custom properties * * @param theme The nested theme object * @returns A flattened object with CSS custom property keys (--nmi-path-to-value) * * Example: * Input: { layout: { radius: { small: '4px' } } } * Output: { '--nmi-layout-radius-small': '4px' } */ export declare const flattenTheme: (theme: NmiTheme) => Record; /** * Recursively merges two theme objects, with the second theme taking precedence * * @param baseTheme The base theme object * @param overrideTheme The override theme object with higher priority * @returns A new theme object with merged values */ export declare const mergeThemes: (baseTheme: NmiTheme, overrideTheme: Partial) => NmiTheme; /** * Resolves a theme object with optional overrides * * @param theme The base theme to use * @param overrides Optional overrides to apply on top of the theme * @returns The flattened theme with overrides applied */ export declare const resolveTheme: (theme: NmiTheme, overrides?: Record) => Record; /** * Apply scaling to theme based on layout spacing, text size, and radius size */ export declare const applyScalingToTheme: (theme: NmiTheme, layoutSpacing?: LayoutSpacing, textSize?: TextSize, radiusSize?: RadiusSize) => NmiTheme; /** * Apply radius size scaling to a theme */ export declare const applyRadiusScaling: (theme: NmiTheme, radiusSize?: RadiusSize) => NmiTheme; /** * Processes an appearance object into CSS variables for styling components * Combines theme selection, scaling, merging, and flattening into a single utility * * @param appearance The appearance configuration object * @returns A flattened object with CSS custom property keys and values */ export declare const processAppearanceToCssVars: (appearance?: Appearance) => Record;