import { RootContent, Definition, FootnoteDefinition } from 'mdast'; /** * 工具函数 */ declare function generateId(prefix?: string): string; /** * 重置 ID 计数器(用于测试) */ declare function resetIdCounter(): void; /** * 计算行的偏移量 */ declare function calculateLineOffset(lines: string[], lineIndex: number): number; /** * 将文本按行分割 */ declare function splitLines(text: string): string[]; /** * 合并行为文本 */ declare function joinLines(lines: string[], start: number, end: number): string; declare function isDefinitionNode(node: RootContent): node is Definition; declare function isFootnoteDefinitionNode(node: RootContent): node is FootnoteDefinition; /** * 从 AST 节点中收集脚注引用标识符 * * @param node 起始节点 * @returns 脚注引用标识符列表(按出现顺序,去重) */ declare function collectFootnoteReferences(node: RootContent): string[]; /** * AST 节点遍历器 * 深度优先遍历 AST 节点 * * @param node 起始节点 * @param visitor 访问者函数,返回 true 可以提前终止遍历 */ declare function traverseAst(node: RootContent, visitor: (node: RootContent) => boolean | void): void; /** * 从 AST 节点中收集指定类型的节点 * * @param node 起始节点 * @param predicate 匹配谓词 * @returns 匹配的节点列表 */ declare function collectAstNodes(node: RootContent, predicate: (node: RootContent) => node is T): T[]; export { calculateLineOffset, collectAstNodes, collectFootnoteReferences, generateId, isDefinitionNode, isFootnoteDefinitionNode, joinLines, resetIdCounter, splitLines, traverseAst };