interface CodeSpanNode { type: "code-span"; text: string; } interface TextNode { type: "text"; text: string; } interface HardBreakNode { type: "hardbreak"; } interface SoftBreakNode { type: "softbreak"; } interface StrongNode { type: "strong"; children: Array; } interface EmphasisNode { type: "emphasis"; children: Array; } interface LinkNode { type: "link"; href: string; title?: string; children: Array; } interface ImageNode { type: "image"; href: string; title?: string; children: Array; } interface HtmlTagNode { type: "html"; content: string; } type InlineNode = TextNode | CodeSpanNode | HardBreakNode | SoftBreakNode | StrongNode | EmphasisNode | LinkNode | ImageNode | HtmlTagNode; declare class MarkdownParser { private splitter; private root; private nextNodeIndex; private referenceDefinitions; parse(input: string, options?: { stream?: boolean; }): BlockNode[]; private parseLine; private parseReferenceLinkDefinitions; private convertInternalBlockToPublicBlock; private convertInternalBlockToPublicOpenBlock; private convertInternalListItemToPublicListItem; private convertInternalListItemToPublicOpenListItem; get nodes(): BlockNode[]; /** * @experimental * * Best-effort preview of the currently open top-level block. This node has * not finalized and may change, disappear, or be reinterpreted as more input * arrives. */ get experimental_openNode(): OpenBlockNode | null; } interface TableNode { type: "table"; head: { cells: Array<{ align: "left" | "right" | "center" | undefined; children: Array; }>; }; body: { rows: Array<{ cells: Array<{ align: "left" | "right" | "center" | undefined; children: Array; }>; }>; }; } interface ThematicBreakNode { type: "thematic-break"; } interface CodeBlockNode { type: "code-block"; info?: string; content: string; } interface BlockquoteNode { type: "blockquote"; children: Array; } type ListNode = { type: "list"; tight: boolean; items: Array; } & ({ kind: "ordered"; start: number; } | { kind: "unordered"; marker: string; }); type ListItemNode = { type: "list-item"; children: Array; }; type OpenBlockquoteNode = BlockquoteNode & { experimental_openChild?: OpenBlockNode; }; type OpenListNode = ListNode & { experimental_openChild?: OpenListItemNode; }; type OpenListItemNode = ListItemNode & { experimental_openChild?: OpenBlockNode; }; type OpenBlockNode = TableNode | ThematicBreakNode | CodeBlockNode | HeadingNode | ParagraphNode | OpenBlockquoteNode | OpenListNode | HtmlBlockNode; interface HtmlBlockNode { type: "html-block"; content: string; } interface HeadingNode { type: "heading"; level: 1 | 2 | 3 | 4 | 5 | 6; children: Array; } interface ParagraphNode { type: "paragraph"; children: Array; } type BlockNode = TableNode | ThematicBreakNode | CodeBlockNode | HeadingNode | ParagraphNode | BlockquoteNode | ListNode | HtmlBlockNode; export { MarkdownParser }; export type { BlockNode, InlineNode };