type MultiplicationNode = { nodeType: 'multiplication'; branches: (JsxTree | MultiplicationNode)[]; }; type ExpressionNode = { nodeType: 'expression'; result: string | number | boolean | MultiplicationNode | null; }; type ElementNode = { nodeType: 'element'; type: string; props?: { children?: JsxTree | MultiplicationNode | (JsxTree | MultiplicationNode)[]; [key: string]: any; }; }; type JsxTree = ElementNode | ExpressionNode | string | number | boolean | null; export type { MultiplicationNode, ExpressionNode, ElementNode, JsxTree }; declare function isElementNode(node: JsxTree | MultiplicationNode): node is ElementNode; declare function isExpressionNode(node: JsxTree | MultiplicationNode): node is ExpressionNode; declare function isMultiplicationNode(node: JsxTree | MultiplicationNode): node is MultiplicationNode; export { isElementNode, isExpressionNode, isMultiplicationNode }; type WhitespaceMultiplicationNode = { nodeType: 'multiplication'; branches: (WhitespaceJsxTreeResult | WhitespaceMultiplicationNode)[]; }; type WhitespaceJsxTree = { nodeType?: 'element'; type: string; props?: { children?: (WhitespaceJsxTreeResult | WhitespaceMultiplicationNode)[]; [key: string]: any; }; }; type WhitespaceJsxTreeResult = WhitespaceJsxTree | string | number | boolean | null; export type { WhitespaceMultiplicationNode, WhitespaceJsxTree, WhitespaceJsxTreeResult, }; declare function isWhitespaceJsxTree(node: WhitespaceJsxTreeResult | WhitespaceMultiplicationNode): node is WhitespaceJsxTree; declare function isWhitespaceMultiplicationNode(node: WhitespaceJsxTreeResult | WhitespaceMultiplicationNode): node is WhitespaceMultiplicationNode; export { isWhitespaceJsxTree, isWhitespaceMultiplicationNode }; type MultipliedTree = { nodeType?: 'element'; type: string; props?: { children?: MultipliedTreeNode; }; }; type MultipliedTreeNode = MultipliedTree | string | number | boolean | null; export type { MultipliedTree, MultipliedTreeNode };