import { default as Konva } from 'konva';
export declare class TextUtil {
    /** 字体度量缓存限制 */
    private static readonly FONT_METRICS_CACHE_LIMIT;
    /** 布局大小缓存限制（按「样式 + 单段文本」键，长文档可提高命中率） */
    private static readonly LAYOUT_SIZE_CACHE_LIMIT;
    /** 东亚常见全宽字符块 */
    private static readonly EAST_ASIAN_FULL_WIDTH_REGEX;
    /** 表单/文档中常见的几何符号 */
    private static readonly FULL_WIDTH_SYMBOL_REGEX;
    /**
     * 视觉间距系数
     * 值 = fontSize * ratio
     *
     * 解决：
     * - N·m
     * - N/A
     * - kg·m²
     * 等符号贴太近的问题
     */
    /**
     * 中间点类：CoreText / DirectWrite 下 advance 常偏窄，仅靠较小 ratio 仍可能与字母叠画；
     * 在 getVisualSpacing 内另有 em 下限（与平台无关）。
     */
    private static readonly MIDDLE_DOT_EXTRA_FLOOR_EM;
    private static readonly VISUAL_SPACING_MAP;
    private static fontMetricsCache;
    private static layoutSizeCache;
    /**
     * 验证中文字符
     * @param char
     * @returns
     */
    static isHanChar(char: string): boolean;
    /**
     * 验证是否为应按 1em 处理的全宽单字符
     * @param char
     * @returns
     */
    static isFullWidthChar(char: string): boolean;
    /**
     * 获取字符视觉间距
     *
     * 注意：
     * 这里不是 glyph width
     * 而是用于排版推进的额外 advance width
     *
     * 例如：
     * - N·m
     * - N/A
     *
     * 中间符号真实宽度很小，
     * 但视觉上需要 breathing space
     *
     * @param char
     * @param fontSize
     * @returns
     */
    /** 数学/单位中间的点号（不含列表圆点 •） */
    private static isMiddleDotSpacingChar;
    static getVisualSpacing(char: string, fontSize: number): number;
    /**
     * 生成文本度量缓存键
     * @param payload
     * @param includeText
     * @returns
     */
    private static getMeasureCacheKey;
    /**
     * 计算字体度量
     * ascent / descent
     *
     * @param payload
     * @returns
     */
    static getFontMetrics(payload: Konva.TextConfig): {
        ascent: number;
        descent: number;
    };
    /**
     * 获取字符排版推进宽度
     *
     * 注意：
     * 这里返回的是：
     * advance width
     *
     * 而不是：
     * glyph width
     *
     * 用于：
     * - 自动换行
     * - 光标推进
     * - 文本布局
     * - selection
     *
     * @param payload
     * @returns
     */
    static getAdvanceWidth(payload: Konva.TextConfig): number;
    /**
     * 计算单字符布局大小
     *
     * 注意：
     * width 使用 advance width
     *
     * @param payload
     * @returns
     */
    static getLayoutSize(payload: Konva.TextConfig): {
        width: number;
        height: number;
    };
    /**
     * 清除度量缓存
     */
    static clearMeasureCache(): void;
    /**
     * 获取缓存大小
     * @returns
     */
    static getMeasureCacheSize(): {
        fontMetrics: number;
        layoutSize: number;
    };
}
