import { Node } from "../common/node"; import { CSSGenerator, CSSVarGroup } from "./cssGenerator"; import { JSONGenerator } from "./jsonGenerator"; import { IDesignSystem, VarListener, INode } from "../interfaces"; /** * Code generation for theme builder. * @category Generators */ export declare class Code extends Node { /** The CSS code generator */ cssGenerator: CSSGenerator; jsonGenerator: JSONGenerator; constructor(ds: IDesignSystem); generate(): void; /** * Get all CSS variables for this design system. * @returns All CSS variables for this design system. */ getCSSVars(): { [name: string]: string; }; /** * Set a CSS variable listener which is called each time a CSS variable value is changed. * @param name The listener name. * @param listener The listener callback. */ setCSSVarListener(name: string, listener?: VarListener): void; /** * Get a group of CSS variables associated with a particular node (i.e. atom, molecule, or organism). * @param node The node for which we are getting the group of variables. * @returns The variable group */ getCSSVarGroup(node: INode): CSSVarGroup; /** * Get all keys of all CSS variable groups. * @returns All keys associated with all CSS variable groups. */ getCSSVarGroupKeys(): string[]; /** * Get the base JSON code generated by the theme builder for the default theme. * @returns The JSON object. */ getJSONBase(): Object; /** * Get the lightmode JSON code generated by the theme builder for the default theme. * @returns The JSON object. */ getJSONLM(): Object; /** * Get the darkmode JSON code generated by the theme builder for the default theme. * @returns The JSON object. */ getJSONDM(): Object; /** * Get the JSON code generated by the theme builder for the default theme for light or dark mode. * @returns The JSON object. */ getJSON(lm: boolean): Object; }