import { Config, ResolvableTo, ThemeConfig } from './types/config' import { DefaultTheme } from './types/generated/default-theme' import { DefaultColors } from './types/generated/colors' type ResolvedConfig = Omit & { theme: MergeThemes< UnwrapResolvables>, T['theme'] extends { extend: infer TExtend } ? UnwrapResolvables : {} > } type UnwrapResolvables = { [K in keyof T]: T[K] extends ResolvableTo ? R : T[K] } type ThemeConfigResolved = UnwrapResolvables type DefaultThemeFull = DefaultTheme & { colors: DefaultColors } type MergeThemes = { [K in keyof ThemeConfigResolved | keyof Overrides]: (K extends keyof Overrides ? Overrides[K] : K extends keyof DefaultThemeFull ? DefaultThemeFull[K] : K extends keyof ThemeConfigResolved ? ThemeConfigResolved[K] : never) & (K extends keyof Extensions ? Extensions[K] : {}) } declare function resolveConfig(config: T): ResolvedConfig export = resolveConfig