import { type FunkitTheme } from './toRestyleTheme'; import { type FunkitTokens } from './tokens'; /** Recursive partial — every group/leaf of the nested token tree is optional. */ type DeepPartial = T extends object ? { [K in keyof T]?: DeepPartial; } : T; /** * A deep-partial override of the nested Fun Variables {@link FunkitTokens} * groups. Pass to {@link lightTheme} / {@link darkTheme} to restyle only the * leaves a brand changes (`background` / `content` / `border` / `brand` / …); * anything omitted keeps the base token's value. */ export type FunkitTokensOverride = DeepPartial; /** * Build a light {@link FunkitTheme}, deep-merging an optional brand override * onto the SDK's `lightTokens`. A brand specifies only the leaves it changes — * the design defines `default` / `pressed` states — and everything else keeps * the default value. Called with no argument it returns the default light theme. * * @example * const theme = lightTheme({ * background: { button: { primary: { default: '#1e3b25', pressed: '#264e30' } } }, * brand: { primary: '#1e3b25' }, * }) */ export declare function lightTheme(override?: FunkitTokensOverride): FunkitTheme; /** * Build a dark {@link FunkitTheme}, deep-merging an optional brand override onto * the SDK's `darkTokens`. See {@link lightTheme}. For a dark-only brand, call * this once and reuse the theme for both `light` and `dark`. */ export declare function darkTheme(override?: FunkitTokensOverride): FunkitTheme; export {}; //# sourceMappingURL=themes.d.ts.map