import type { DeepPartial } from '../types'; export interface ThemeLeaf { $type: string; $value: Value; $constant?: boolean; $comment?: string; } export type ThemeDefinition = { [key: string]: ThemeLeaf | ThemeDefinition; }; export type ToThemeIFace = Node extends ThemeLeaf ? (LeafVal extends null ? LeafVal | string : LeafVal) | Extension : Node extends object ? { readonly [Key in keyof Node as Key extends '$comment' ? never : Key]: ToThemeIFace; } : Node | Extension; export type SettableTheme = DeepPartial>; export declare const resetToInitial: unique symbol; export interface ThemeMachineLike { parent: ThemeMachineLike | null; definition: Definition; overrides: Map; readonly theme: ToThemeIFace; } declare class ThemeMachine implements ThemeMachineLike { parent: ThemeMachineLike | null; definition: Definition; overrides: Map; readonly theme: ToThemeIFace; overrideInTree(keys: string[]): boolean; constructTheme(theme: SettableTheme): ToThemeIFace; constructor({ theme, parent, definition }: { theme?: SettableTheme; parent: ThemeMachineLike; definition?: never; } | { theme?: SettableTheme; parent?: never; definition: Definition; }); } export default ThemeMachine; //# sourceMappingURL=ThemeMachine.d.ts.map