@@ -6,6 +6,7 @@ import type {
66 DefinitionContent ,
77 PhrasingContent
88} from 'mdast'
9+ import type { ElementContent , Parent as HastParent } from 'hast'
910import type { Program } from 'estree-jsx'
1011
1112import type { Tag } from './lib/index.js'
@@ -136,6 +137,54 @@ export interface MdxJsxTextElement extends MdastParent {
136137 children : PhrasingContent [ ]
137138}
138139
140+ /**
141+ * MDX JSX element node, occurring in flow (block), for hast.
142+ */
143+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
144+ export interface MdxJsxFlowElementHast extends HastParent {
145+ /**
146+ * Node type.
147+ */
148+ type : 'mdxJsxFlowElement'
149+ /**
150+ * MDX JSX element name (`null` for fragments).
151+ */
152+ // eslint-disable-next-line @typescript-eslint/ban-types
153+ name : string | null
154+ /**
155+ * MDX JSX element attributes.
156+ */
157+ attributes : Array < MdxJsxAttribute | MdxJsxExpressionAttribute >
158+ /**
159+ * Content.
160+ */
161+ children : ElementContent [ ]
162+ }
163+
164+ /**
165+ * MDX JSX element node, occurring in text (phrasing), for hast.
166+ */
167+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
168+ export interface MdxJsxTextElementHast extends HastParent {
169+ /**
170+ * Node type.
171+ */
172+ type : 'mdxJsxTextElement'
173+ /**
174+ * MDX JSX element name (`null` for fragments).
175+ */
176+ // eslint-disable-next-line @typescript-eslint/ban-types
177+ name : string | null
178+ /**
179+ * MDX JSX element attributes.
180+ */
181+ attributes : Array < MdxJsxAttribute | MdxJsxExpressionAttribute >
182+ /**
183+ * Content.
184+ */
185+ children : ElementContent [ ]
186+ }
187+
139188// Add nodes to mdast content.
140189declare module 'mdast' {
141190 // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
@@ -162,23 +211,23 @@ declare module 'hast' {
162211 /**
163212 * MDX JSX element node, occurring in text (phrasing).
164213 */
165- mdxJsxTextElement : MdxJsxTextElement
214+ mdxJsxTextElement : MdxJsxTextElementHast
166215 /**
167216 * MDX JSX element node, occurring in flow (block).
168217 */
169- mdxJsxFlowElement : MdxJsxFlowElement
218+ mdxJsxFlowElement : MdxJsxFlowElementHast
170219 }
171220
172221 // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
173222 interface ElementContentMap {
174223 /**
175224 * MDX JSX element node, occurring in text (phrasing).
176225 */
177- mdxJsxTextElement : MdxJsxTextElement
226+ mdxJsxTextElement : MdxJsxTextElementHast
178227 /**
179228 * MDX JSX element node, occurring in flow (block).
180229 */
181- mdxJsxFlowElement : MdxJsxFlowElement
230+ mdxJsxFlowElement : MdxJsxFlowElementHast
182231 }
183232}
184233
0 commit comments