import React from 'react';
/**
 * AST 提取工具集——从 mdast / hast / React children 中抽取文本与结构化数据。
 *
 * 这些工具原本散落在 `markdownReactShared.ts` 的开头，按职责单独拆出便于复用与测试。
 */
/**
 * 从 mdast 表格单元格节点中提取纯文本。
 * 递归收集所有 `text` 子节点的 value，去除前后空白。
 */
export declare const extractCellText: (cell: any) => string;
/**
 * 表格单元格的"字符串 → 数字 or 原值"统一规则。
 *
 * 规则优先级（自上而下）：
 * 1. 空串 → 直接返回空串
 * 2. `Number(val)` 成功 → 直接返回 number（覆盖纯数字 `42` / `3.14` / `-1.5`）
 * 3. 带正号前缀（`+1,234` / `+3.14`）→ 去掉 `+` 后递归
 * 4. 千分位数字（`8,287.44` / `1,234` / `12,3456`）→ 去逗号转 number
 * 5. 百分比（`12.5%` / `-3%`）→ 去 `%` 去逗号转 number（保留字面值，不除以 100）
 * 6. 英文紧凑后缀（`1.2k` / `3M` / `-2.5B` / `+1,234t`）→ base × multiplier
 * 7. 中文金额（`1.5万` / `2亿` / `5万元`）→ 走 `parseChineseCurrencyToNumber`
 * 8. 都不命中 → 返回原字符串
 *
 * @param val - 单元格文本（已 trim）
 * @param parseChineseCurrencyToNumber - 注入的中文金额解析器
 */
export declare const coerceTableCellValue: (val: string, parseChineseCurrencyToNumber: (val: string) => number | null) => string | number;
/**
 * 从 mdast `table` 节点提取列定义和数据行。
 *
 * - 第一行视为表头，其余行作为数据
 * - 数据值的字符串 → 数字转换规则参见 {@link coerceTableCellValue}
 *
 * @returns 解析失败（缺表头 / 空表）时返回 `null`
 */
export declare const extractTableData: (tableNode: any, parseChineseCurrencyToNumber: (val: string) => number | null) => {
    columns: {
        title: string;
        dataIndex: string;
    }[];
    dataSource: Record<string, any>[];
} | null;
/**
 * 从 className 字符串/数组中提取 `language-xxx` 形式的语言标识。
 *
 * 与 `pre > code` 的代码块语言识别配套使用。
 */
export declare const extractLanguageFromClassName: (className: string | string[] | undefined) => string | undefined;
/**
 * 递归提取 React children 中的纯文本。
 *
 * 用于在 hast → React 转换后，从已渲染的子树重新拿到原始文本（如 `<think>` 内容）。
 */
export declare const extractChildrenText: (children: React.ReactNode) => string;
