import { c as BlockContext, C as ContainerConfig, d as ContainerMatch } from '../index-CWuosVAK.js'; import 'mdast'; import 'micromark-util-types'; import 'mdast-util-from-markdown'; /** * 块类型检测与边界判断 * * Markdown 块级元素的识别规则 */ /** * 检测行是否是代码块 fence 开始 */ declare function detectFenceStart(line: string): { char: string; length: number; } | null; /** * 检测行是否是代码块 fence 结束 */ declare function detectFenceEnd(line: string, context: BlockContext): boolean; /** * 检测是否是空行或仅包含空白字符 */ declare function isEmptyLine(line: string): boolean; /** * 检测是否是 Setext 标题下划线(=== 或 ---) * @param line 当前行 * @param prevLine 前一行 * @returns 是否是 Setext 标题下划线 */ declare function isSetextHeadingUnderline(line: string, prevLine?: string): boolean; /** * 检测是否是标题行 */ declare function isHeading(line: string): boolean; /** * 检测是否是 thematic break(水平线) */ declare function isThematicBreak(line: string): boolean; /** * 检测是否是列表项开始 * * CommonMark 规范:列表项可以是以下形式: * - `- text`(无缩进) * - `1. text`(有序列表) * - ` - text`(缩进4个空格,作为上一个列表项的延续) * * 注意:` - text` 这种形式,虽然 `-` 后面没有空格, * 但因为前面有4个空格的缩进,所以是列表项的有效形式。 */ declare function isListItemStart(line: string): { ordered: boolean; indent: number; } | null; /** * 检测是否是引用块开始 */ declare function isBlockquoteStart(line: string): boolean; /** * 检测是否是 HTML 块 */ declare function isHtmlBlock(line: string): boolean; /** * 检测表格分隔行 */ declare function isTableDelimiter(line: string): boolean; /** * 检测是否是脚注定义的起始行 * 格式: [^id]: content * * @example * isFootnoteDefinitionStart('[^1]: 脚注内容') // true * isFootnoteDefinitionStart('[^note]: 内容') // true * isFootnoteDefinitionStart(' 缩进内容') // false */ declare function isFootnoteDefinitionStart(line: string): boolean; /** * 检测是否是脚注定义的延续行(缩进行) * 至少4个空格或1个tab * * @example * isFootnoteContinuation(' 第二行') // true * isFootnoteContinuation('\t第二行') // true * isFootnoteContinuation(' 两个空格') // false */ declare function isFootnoteContinuation(line: string): boolean; /** * 检测容器开始或结束 * * 支持格式: * - ::: name 开始 * - ::: name attr 开始(带属性) * - ::: 结束 * - :::::: name 开始(更长的标记,用于嵌套) */ declare function detectContainer(line: string, config?: ContainerConfig): ContainerMatch | null; /** * 检测容器结束 */ declare function detectContainerEnd(line: string, context: BlockContext, config?: ContainerConfig): boolean; /** * 判断两行之间是否构成块边界 */ declare function isBlockBoundary(prevLine: string, currentLine: string, context: BlockContext): boolean; /** * 创建初始上下文 */ declare function createInitialContext(): BlockContext; /** * 更新上下文(处理一行后) * * @param line 当前行 * @param context 当前上下文 * @param containerConfig 容器配置 * @returns 更新后的上下文 */ declare function updateContext(line: string, context: BlockContext, containerConfig?: ContainerConfig | boolean): BlockContext; export { createInitialContext, detectContainer, detectContainerEnd, detectFenceEnd, detectFenceStart, isBlockBoundary, isBlockquoteStart, isEmptyLine, isFootnoteContinuation, isFootnoteDefinitionStart, isHeading, isHtmlBlock, isListItemStart, isSetextHeadingUnderline, isTableDelimiter, isThematicBreak, updateContext };