@ai-matrx/content-ir 0.20.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/source.d.cts CHANGED
@@ -739,4 +739,160 @@ declare function findTableStart(lines: readonly string[], from?: number): number
739
739
  /** Index just past the table whose header is at `start` (header, delimiter, then continuation rows). */
740
740
  declare function findTableEnd(lines: readonly string[], start: number): number;
741
741
 
742
- export { AFTER_WINDOW, BacktickRuns, type BlockIslandType, CALLOUT_NAMES, type CodePointIndex, type CodeRange, type DisturbedIsland, FENCE_OPENER_WHITESPACE, FENCE_WHITESPACE, type FenceEnd, type FenceLineKind, type FenceLines, type FenceOpener, FenceReader, type InlineIslandType, type InnerFenceLine, type IslandMeta, type IslandType, type LinkDefinition, type MapOptions, type MappedPosition, type MappedRange, NESTING_FENCE_LANGUAGES, type ReadXmlTag, type SourceBlock, type SourceBlockKind, type SourceChange, type SourceEdit, type SourceIsland, type SourceSpan, SourceSpliceError, type SourceSpliceErrorCode, type SpliceIntegrity, type SpliceOptions, type SpliceResult, type TokenizeOptions, XmlContainerTracker, blockAt, blockEdit, blockRangeEdit, buildCodePointIndex, classifyInnerFenceLine, closeFence, codeSpanText, collectLinkDefinitions, continuesTable, fenceLineKinds, fenceNestsInnerFences, fenceOpenerOf, fenceParts, findCodeRanges, findInlineCodeSpans, findLinkDefinitionLines, findTableEnd, findTableStart, isEscapedBracketMath, isGfmDelimiterRow, isHtmlBlockTagName, isMathPlaceholder, isPipeLedRow, isSingleDollarMath, islandEdit, joinSource, lineIndent, listIslands, looksLikeDisplayMath, looksLikeOpenInlineMath, mapCodeRanges, mapInlineCodeSpans, mapPosition, mapRange, normalizeLinkLabel, opensStrippedHtmlBlock, opensTable, pairDisplayMath, parseFenceOpener, pendingCodeSpanStart, pendingDisplayMathOpener, readXmlTag, resolveReferenceLinks, rowCells, singleDollarAfter, singleDollarMathEnd, spliceSave, splitRowSegments, splitsSurrogatePair, startsHtmlBlock, startsPipelessTable, tableContainerIndent, tableStartsAt, toCodePointOffset, toUtf16Offset, tokenizeSource, trimFenceLine, unescapeCellPipes };
742
+ /** Replace every inline code span with its text (`x` → x); fences untouched. */
743
+ declare function unwrapCodeSpans(text: string): string;
744
+ /** Remove every inline code span entirely; fences untouched. */
745
+ declare function removeCodeSpans(text: string): string;
746
+ /**
747
+ * Rewrite every fenced code block. `fn` gets the fence's language ("" when
748
+ * none), its body, and whether it closed; an unclosed fence (a stream still
749
+ * arriving) runs to the end of the text. Code spans and prose are untouched.
750
+ */
751
+ declare function replaceFences(text: string, fn: (fence: {
752
+ lang: string;
753
+ body: string;
754
+ closed: boolean;
755
+ raw: string;
756
+ }) => string): string;
757
+ /**
758
+ * When the whole (trimmed) text is ONE fenced block — an LLM's ```json … ```
759
+ * payload — its language and body; otherwise null. `allowUnclosed` accepts a
760
+ * fence still streaming (no closer yet).
761
+ */
762
+ declare function soleFence(text: string, options?: {
763
+ allowUnclosed?: boolean;
764
+ }): {
765
+ lang: string;
766
+ body: string;
767
+ closed: boolean;
768
+ } | null;
769
+
770
+ /**
771
+ * Markdown → plain text, for places that must show WORDS rather than render a
772
+ * document: table cells, tooltips, meta descriptions, chart labels, aria-labels,
773
+ * exported slide text.
774
+ *
775
+ * This is NOT a renderer and never competes with one. When the surface can
776
+ * afford real formatting, render the markdown through the canonical path
777
+ * (`BasicMarkdownContent` / `MarkdownStream`) instead. Reach for this only when
778
+ * a single line of text is the product — where a rendered `<strong>` cannot go
779
+ * and raw `**asterisks**` would otherwise reach a user's eyes.
780
+ *
781
+ * Deliberately conservative: it unwraps the inline emphasis markers people
782
+ * actually hit (bold, italic, inline code, strikethrough, links) and leaves
783
+ * everything else alone. Stray, unpaired `*` and `_` survive untouched, because
784
+ * a lone asterisk in prose is prose — mangling it would be worse than the
785
+ * problem this solves.
786
+ */
787
+ /** Make one math expression's INNER content readable as words. */
788
+ declare function mathToReadable(expression: string): string;
789
+ /**
790
+ * Strip inline markdown emphasis so the text reads cleanly as prose.
791
+ *
792
+ * Returns "" for nullish input so callers can pass a possibly-absent DB column
793
+ * straight in.
794
+ */
795
+ declare function markdownToPlainText(value: string | null | undefined): string;
796
+ /**
797
+ * Stored content → the READABLE markdown a person meant, for places that take
798
+ * the text OUT of its home (a flashcard back, a task description, a clipboard
799
+ * "plain text" copy). Kind envelopes are storage plumbing, not words: an
800
+ * `<artifact …>body</artifact>` wrapper (a materialized table, a canvas) is
801
+ * replaced by its body, so a reader never sees the raw tag. Everything else is
802
+ * kept byte for byte — the offset-preserving source tokenizer draws the
803
+ * boundaries, so a code fence that merely MENTIONS `<artifact>` is untouched.
804
+ */
805
+ declare function unwrapKindEnvelopes(value: string | null | undefined): string;
806
+
807
+ declare const cleanMarkdown: (text: string) => string;
808
+
809
+ /** Where a code block carries its raw fence meta (block.metadata / stream block data). */
810
+ declare const FENCE_META_KEY = "fenceMeta";
811
+ interface FenceInfo {
812
+ /** The language token alone (`ts`), or undefined for a bare fence. */
813
+ language?: string;
814
+ /** Everything after the language, verbatim; undefined when empty. */
815
+ meta?: string;
816
+ }
817
+ interface FenceMeta {
818
+ /** A filename or caption shown in the code block header. */
819
+ title?: string;
820
+ /** 1-based line numbers to highlight, ascending, deduplicated. */
821
+ highlightLines: number[];
822
+ /** Explicit line-number request (`showLineNumbers`). */
823
+ showLineNumbers?: boolean;
824
+ /** First line number when numbering starts somewhere other than 1. */
825
+ startLine?: number;
826
+ }
827
+ /** Split `ts:app.tsx {1,3} title="x"` into the language token and its meta. */
828
+ declare function splitFenceInfo(info: string): FenceInfo;
829
+ /** Parse a fence's meta string (from splitFenceInfo) into render options. */
830
+ declare function parseFenceMeta(meta: string | undefined | null): FenceMeta;
831
+ /** `1,3-5, 9` → [1, 3, 4, 5, 9]. Malformed parts are skipped. */
832
+ declare function parseLineRanges(spec: string): number[];
833
+
834
+ /** A line that opens a container directive: 3+ colons, then a name. */
835
+ declare const DIRECTIVE_CONTAINER_OPEN: RegExp;
836
+ declare class DirectiveContainerTracker {
837
+ private readonly stack;
838
+ private fence;
839
+ constructor(openingLine: string);
840
+ /** Feed the next line (after the opener). True once the outermost container has closed on this line. */
841
+ consume(line: string): boolean;
842
+ }
843
+
844
+ declare const TITLED_IMAGE_LINE: RegExp;
845
+
846
+ declare function isInsideInlineCode(line: string, at: number): boolean;
847
+ /** Index of the first `needle` in `line` at or after `from` that is not inside inline code. */
848
+ declare function indexOutsideInlineCode(line: string, needle: string, from?: number): number;
849
+ /**
850
+ * Whether `text` (a line still arriving) holds a backtick run with no closing
851
+ * run of the same length yet — a code span that may still close. A kind
852
+ * after it may be inside that span (quoted source), so a live split waits
853
+ * for the line to end, when the span rule above answers for certain.
854
+ */
855
+ declare function hasUnclosedBacktickRun(text: string): boolean;
856
+
857
+ interface XmlBalanceState {
858
+ /** Open same-name sections, counting the container itself (starts at 1). */
859
+ depth: number;
860
+ /** The fenced code block we are inside, read by THE one closer (@ai-matrx/content-ir/source). */
861
+ fence: FenceReader | null;
862
+ }
863
+ declare function initialXmlBalance(): XmlBalanceState;
864
+ interface XmlBalanceOptions {
865
+ /** Ignore tags inside ``` / ~~~ fenced code (default true). */
866
+ trackFences?: boolean;
867
+ /** Count nested same-name openers (default true). False = first closer wins. */
868
+ nest?: boolean;
869
+ }
870
+ /**
871
+ * Scan ONE line inside an open `<tagName>` section, in source order.
872
+ *
873
+ * Returns the character index where the container's own closing tag starts
874
+ * (the closer that brings depth to zero), or -1 when the section is still
875
+ * open after this line. Mutates `state` (depth and fence tracking).
876
+ */
877
+ declare function findBalancedXmlClose(line: string, tagName: string, state: XmlBalanceState, { trackFences, nest }?: XmlBalanceOptions): number;
878
+
879
+ /**
880
+ * Index of the first WHOLE table header at or after `from` (THE rule's
881
+ * `tableStartsAt`: a same-width delimiter row under it, no lazy line, no indented
882
+ * code); -1 when none. `findTableStart` is the streaming-lenient twin (a pipe-led
883
+ * row opens before its delimiter arrives).
884
+ */
885
+ declare function findWholeTableStart(lines: readonly string[], from?: number): number;
886
+ /** A line that starts like a pipe-led row — even a lone `|` still growing. */
887
+ declare function startsLikeTableRow(line: string): boolean;
888
+ /** A delimiter row still arriving: only pipes, colons, dashes and spaces, with a dash so far. */
889
+ declare function isGrowingDelimiterRow(line: string): boolean;
890
+ /**
891
+ * The trailing lines of a streaming text that belong to a table being written
892
+ * (pipe-led rows, even partial; pipe-less rows once a delimiter follows the
893
+ * header): the start index, or `end` when the tail is not a table. A lone
894
+ * pipe-less line is never claimed — it may be prose.
895
+ */
896
+ declare function trailingTableStart(lines: readonly string[], end?: number): number;
897
+
898
+ export { AFTER_WINDOW, BacktickRuns, type BlockIslandType, CALLOUT_NAMES, type CodePointIndex, type CodeRange, DIRECTIVE_CONTAINER_OPEN, DirectiveContainerTracker, type DisturbedIsland, FENCE_META_KEY, FENCE_OPENER_WHITESPACE, FENCE_WHITESPACE, type FenceEnd, type FenceInfo, type FenceLineKind, type FenceLines, type FenceMeta, type FenceOpener, FenceReader, type InlineIslandType, type InnerFenceLine, type IslandMeta, type IslandType, type LinkDefinition, type MapOptions, type MappedPosition, type MappedRange, NESTING_FENCE_LANGUAGES, type ReadXmlTag, type SourceBlock, type SourceBlockKind, type SourceChange, type SourceEdit, type SourceIsland, type SourceSpan, SourceSpliceError, type SourceSpliceErrorCode, type SpliceIntegrity, type SpliceOptions, type SpliceResult, TITLED_IMAGE_LINE, type TokenizeOptions, type XmlBalanceOptions, type XmlBalanceState, XmlContainerTracker, blockAt, blockEdit, blockRangeEdit, buildCodePointIndex, classifyInnerFenceLine, cleanMarkdown, closeFence, codeSpanText, collectLinkDefinitions, continuesTable, fenceLineKinds, fenceNestsInnerFences, fenceOpenerOf, fenceParts, findBalancedXmlClose, findCodeRanges, findInlineCodeSpans, findLinkDefinitionLines, findTableEnd, findTableStart, findWholeTableStart, hasUnclosedBacktickRun, indexOutsideInlineCode, initialXmlBalance, isEscapedBracketMath, isGfmDelimiterRow, isGrowingDelimiterRow, isHtmlBlockTagName, isInsideInlineCode, isMathPlaceholder, isPipeLedRow, isSingleDollarMath, islandEdit, joinSource, lineIndent, listIslands, looksLikeDisplayMath, looksLikeOpenInlineMath, mapCodeRanges, mapInlineCodeSpans, mapPosition, mapRange, markdownToPlainText, mathToReadable, normalizeLinkLabel, opensStrippedHtmlBlock, opensTable, pairDisplayMath, parseFenceMeta, parseFenceOpener, parseLineRanges, pendingCodeSpanStart, pendingDisplayMathOpener, readXmlTag, removeCodeSpans, replaceFences, resolveReferenceLinks, rowCells, singleDollarAfter, singleDollarMathEnd, soleFence, spliceSave, splitFenceInfo, splitRowSegments, splitsSurrogatePair, startsHtmlBlock, startsLikeTableRow, startsPipelessTable, tableContainerIndent, tableStartsAt, toCodePointOffset, toUtf16Offset, tokenizeSource, trailingTableStart, trimFenceLine, unescapeCellPipes, unwrapCodeSpans, unwrapKindEnvelopes };
package/dist/source.d.ts CHANGED
@@ -739,4 +739,160 @@ declare function findTableStart(lines: readonly string[], from?: number): number
739
739
  /** Index just past the table whose header is at `start` (header, delimiter, then continuation rows). */
740
740
  declare function findTableEnd(lines: readonly string[], start: number): number;
741
741
 
742
- export { AFTER_WINDOW, BacktickRuns, type BlockIslandType, CALLOUT_NAMES, type CodePointIndex, type CodeRange, type DisturbedIsland, FENCE_OPENER_WHITESPACE, FENCE_WHITESPACE, type FenceEnd, type FenceLineKind, type FenceLines, type FenceOpener, FenceReader, type InlineIslandType, type InnerFenceLine, type IslandMeta, type IslandType, type LinkDefinition, type MapOptions, type MappedPosition, type MappedRange, NESTING_FENCE_LANGUAGES, type ReadXmlTag, type SourceBlock, type SourceBlockKind, type SourceChange, type SourceEdit, type SourceIsland, type SourceSpan, SourceSpliceError, type SourceSpliceErrorCode, type SpliceIntegrity, type SpliceOptions, type SpliceResult, type TokenizeOptions, XmlContainerTracker, blockAt, blockEdit, blockRangeEdit, buildCodePointIndex, classifyInnerFenceLine, closeFence, codeSpanText, collectLinkDefinitions, continuesTable, fenceLineKinds, fenceNestsInnerFences, fenceOpenerOf, fenceParts, findCodeRanges, findInlineCodeSpans, findLinkDefinitionLines, findTableEnd, findTableStart, isEscapedBracketMath, isGfmDelimiterRow, isHtmlBlockTagName, isMathPlaceholder, isPipeLedRow, isSingleDollarMath, islandEdit, joinSource, lineIndent, listIslands, looksLikeDisplayMath, looksLikeOpenInlineMath, mapCodeRanges, mapInlineCodeSpans, mapPosition, mapRange, normalizeLinkLabel, opensStrippedHtmlBlock, opensTable, pairDisplayMath, parseFenceOpener, pendingCodeSpanStart, pendingDisplayMathOpener, readXmlTag, resolveReferenceLinks, rowCells, singleDollarAfter, singleDollarMathEnd, spliceSave, splitRowSegments, splitsSurrogatePair, startsHtmlBlock, startsPipelessTable, tableContainerIndent, tableStartsAt, toCodePointOffset, toUtf16Offset, tokenizeSource, trimFenceLine, unescapeCellPipes };
742
+ /** Replace every inline code span with its text (`x` → x); fences untouched. */
743
+ declare function unwrapCodeSpans(text: string): string;
744
+ /** Remove every inline code span entirely; fences untouched. */
745
+ declare function removeCodeSpans(text: string): string;
746
+ /**
747
+ * Rewrite every fenced code block. `fn` gets the fence's language ("" when
748
+ * none), its body, and whether it closed; an unclosed fence (a stream still
749
+ * arriving) runs to the end of the text. Code spans and prose are untouched.
750
+ */
751
+ declare function replaceFences(text: string, fn: (fence: {
752
+ lang: string;
753
+ body: string;
754
+ closed: boolean;
755
+ raw: string;
756
+ }) => string): string;
757
+ /**
758
+ * When the whole (trimmed) text is ONE fenced block — an LLM's ```json … ```
759
+ * payload — its language and body; otherwise null. `allowUnclosed` accepts a
760
+ * fence still streaming (no closer yet).
761
+ */
762
+ declare function soleFence(text: string, options?: {
763
+ allowUnclosed?: boolean;
764
+ }): {
765
+ lang: string;
766
+ body: string;
767
+ closed: boolean;
768
+ } | null;
769
+
770
+ /**
771
+ * Markdown → plain text, for places that must show WORDS rather than render a
772
+ * document: table cells, tooltips, meta descriptions, chart labels, aria-labels,
773
+ * exported slide text.
774
+ *
775
+ * This is NOT a renderer and never competes with one. When the surface can
776
+ * afford real formatting, render the markdown through the canonical path
777
+ * (`BasicMarkdownContent` / `MarkdownStream`) instead. Reach for this only when
778
+ * a single line of text is the product — where a rendered `<strong>` cannot go
779
+ * and raw `**asterisks**` would otherwise reach a user's eyes.
780
+ *
781
+ * Deliberately conservative: it unwraps the inline emphasis markers people
782
+ * actually hit (bold, italic, inline code, strikethrough, links) and leaves
783
+ * everything else alone. Stray, unpaired `*` and `_` survive untouched, because
784
+ * a lone asterisk in prose is prose — mangling it would be worse than the
785
+ * problem this solves.
786
+ */
787
+ /** Make one math expression's INNER content readable as words. */
788
+ declare function mathToReadable(expression: string): string;
789
+ /**
790
+ * Strip inline markdown emphasis so the text reads cleanly as prose.
791
+ *
792
+ * Returns "" for nullish input so callers can pass a possibly-absent DB column
793
+ * straight in.
794
+ */
795
+ declare function markdownToPlainText(value: string | null | undefined): string;
796
+ /**
797
+ * Stored content → the READABLE markdown a person meant, for places that take
798
+ * the text OUT of its home (a flashcard back, a task description, a clipboard
799
+ * "plain text" copy). Kind envelopes are storage plumbing, not words: an
800
+ * `<artifact …>body</artifact>` wrapper (a materialized table, a canvas) is
801
+ * replaced by its body, so a reader never sees the raw tag. Everything else is
802
+ * kept byte for byte — the offset-preserving source tokenizer draws the
803
+ * boundaries, so a code fence that merely MENTIONS `<artifact>` is untouched.
804
+ */
805
+ declare function unwrapKindEnvelopes(value: string | null | undefined): string;
806
+
807
+ declare const cleanMarkdown: (text: string) => string;
808
+
809
+ /** Where a code block carries its raw fence meta (block.metadata / stream block data). */
810
+ declare const FENCE_META_KEY = "fenceMeta";
811
+ interface FenceInfo {
812
+ /** The language token alone (`ts`), or undefined for a bare fence. */
813
+ language?: string;
814
+ /** Everything after the language, verbatim; undefined when empty. */
815
+ meta?: string;
816
+ }
817
+ interface FenceMeta {
818
+ /** A filename or caption shown in the code block header. */
819
+ title?: string;
820
+ /** 1-based line numbers to highlight, ascending, deduplicated. */
821
+ highlightLines: number[];
822
+ /** Explicit line-number request (`showLineNumbers`). */
823
+ showLineNumbers?: boolean;
824
+ /** First line number when numbering starts somewhere other than 1. */
825
+ startLine?: number;
826
+ }
827
+ /** Split `ts:app.tsx {1,3} title="x"` into the language token and its meta. */
828
+ declare function splitFenceInfo(info: string): FenceInfo;
829
+ /** Parse a fence's meta string (from splitFenceInfo) into render options. */
830
+ declare function parseFenceMeta(meta: string | undefined | null): FenceMeta;
831
+ /** `1,3-5, 9` → [1, 3, 4, 5, 9]. Malformed parts are skipped. */
832
+ declare function parseLineRanges(spec: string): number[];
833
+
834
+ /** A line that opens a container directive: 3+ colons, then a name. */
835
+ declare const DIRECTIVE_CONTAINER_OPEN: RegExp;
836
+ declare class DirectiveContainerTracker {
837
+ private readonly stack;
838
+ private fence;
839
+ constructor(openingLine: string);
840
+ /** Feed the next line (after the opener). True once the outermost container has closed on this line. */
841
+ consume(line: string): boolean;
842
+ }
843
+
844
+ declare const TITLED_IMAGE_LINE: RegExp;
845
+
846
+ declare function isInsideInlineCode(line: string, at: number): boolean;
847
+ /** Index of the first `needle` in `line` at or after `from` that is not inside inline code. */
848
+ declare function indexOutsideInlineCode(line: string, needle: string, from?: number): number;
849
+ /**
850
+ * Whether `text` (a line still arriving) holds a backtick run with no closing
851
+ * run of the same length yet — a code span that may still close. A kind
852
+ * after it may be inside that span (quoted source), so a live split waits
853
+ * for the line to end, when the span rule above answers for certain.
854
+ */
855
+ declare function hasUnclosedBacktickRun(text: string): boolean;
856
+
857
+ interface XmlBalanceState {
858
+ /** Open same-name sections, counting the container itself (starts at 1). */
859
+ depth: number;
860
+ /** The fenced code block we are inside, read by THE one closer (@ai-matrx/content-ir/source). */
861
+ fence: FenceReader | null;
862
+ }
863
+ declare function initialXmlBalance(): XmlBalanceState;
864
+ interface XmlBalanceOptions {
865
+ /** Ignore tags inside ``` / ~~~ fenced code (default true). */
866
+ trackFences?: boolean;
867
+ /** Count nested same-name openers (default true). False = first closer wins. */
868
+ nest?: boolean;
869
+ }
870
+ /**
871
+ * Scan ONE line inside an open `<tagName>` section, in source order.
872
+ *
873
+ * Returns the character index where the container's own closing tag starts
874
+ * (the closer that brings depth to zero), or -1 when the section is still
875
+ * open after this line. Mutates `state` (depth and fence tracking).
876
+ */
877
+ declare function findBalancedXmlClose(line: string, tagName: string, state: XmlBalanceState, { trackFences, nest }?: XmlBalanceOptions): number;
878
+
879
+ /**
880
+ * Index of the first WHOLE table header at or after `from` (THE rule's
881
+ * `tableStartsAt`: a same-width delimiter row under it, no lazy line, no indented
882
+ * code); -1 when none. `findTableStart` is the streaming-lenient twin (a pipe-led
883
+ * row opens before its delimiter arrives).
884
+ */
885
+ declare function findWholeTableStart(lines: readonly string[], from?: number): number;
886
+ /** A line that starts like a pipe-led row — even a lone `|` still growing. */
887
+ declare function startsLikeTableRow(line: string): boolean;
888
+ /** A delimiter row still arriving: only pipes, colons, dashes and spaces, with a dash so far. */
889
+ declare function isGrowingDelimiterRow(line: string): boolean;
890
+ /**
891
+ * The trailing lines of a streaming text that belong to a table being written
892
+ * (pipe-led rows, even partial; pipe-less rows once a delimiter follows the
893
+ * header): the start index, or `end` when the tail is not a table. A lone
894
+ * pipe-less line is never claimed — it may be prose.
895
+ */
896
+ declare function trailingTableStart(lines: readonly string[], end?: number): number;
897
+
898
+ export { AFTER_WINDOW, BacktickRuns, type BlockIslandType, CALLOUT_NAMES, type CodePointIndex, type CodeRange, DIRECTIVE_CONTAINER_OPEN, DirectiveContainerTracker, type DisturbedIsland, FENCE_META_KEY, FENCE_OPENER_WHITESPACE, FENCE_WHITESPACE, type FenceEnd, type FenceInfo, type FenceLineKind, type FenceLines, type FenceMeta, type FenceOpener, FenceReader, type InlineIslandType, type InnerFenceLine, type IslandMeta, type IslandType, type LinkDefinition, type MapOptions, type MappedPosition, type MappedRange, NESTING_FENCE_LANGUAGES, type ReadXmlTag, type SourceBlock, type SourceBlockKind, type SourceChange, type SourceEdit, type SourceIsland, type SourceSpan, SourceSpliceError, type SourceSpliceErrorCode, type SpliceIntegrity, type SpliceOptions, type SpliceResult, TITLED_IMAGE_LINE, type TokenizeOptions, type XmlBalanceOptions, type XmlBalanceState, XmlContainerTracker, blockAt, blockEdit, blockRangeEdit, buildCodePointIndex, classifyInnerFenceLine, cleanMarkdown, closeFence, codeSpanText, collectLinkDefinitions, continuesTable, fenceLineKinds, fenceNestsInnerFences, fenceOpenerOf, fenceParts, findBalancedXmlClose, findCodeRanges, findInlineCodeSpans, findLinkDefinitionLines, findTableEnd, findTableStart, findWholeTableStart, hasUnclosedBacktickRun, indexOutsideInlineCode, initialXmlBalance, isEscapedBracketMath, isGfmDelimiterRow, isGrowingDelimiterRow, isHtmlBlockTagName, isInsideInlineCode, isMathPlaceholder, isPipeLedRow, isSingleDollarMath, islandEdit, joinSource, lineIndent, listIslands, looksLikeDisplayMath, looksLikeOpenInlineMath, mapCodeRanges, mapInlineCodeSpans, mapPosition, mapRange, markdownToPlainText, mathToReadable, normalizeLinkLabel, opensStrippedHtmlBlock, opensTable, pairDisplayMath, parseFenceMeta, parseFenceOpener, parseLineRanges, pendingCodeSpanStart, pendingDisplayMathOpener, readXmlTag, removeCodeSpans, replaceFences, resolveReferenceLinks, rowCells, singleDollarAfter, singleDollarMathEnd, soleFence, spliceSave, splitFenceInfo, splitRowSegments, splitsSurrogatePair, startsHtmlBlock, startsLikeTableRow, startsPipelessTable, tableContainerIndent, tableStartsAt, toCodePointOffset, toUtf16Offset, tokenizeSource, trailingTableStart, trimFenceLine, unescapeCellPipes, unwrapCodeSpans, unwrapKindEnvelopes };