import { Wp } from './Wp';
import { TextStyle, RawElement } from '../types';
import { WidgetMeta } from '../../widget/widget-meta';
import { WrPr } from './WrPr';
import { ModelNode, ModelNodeOptions } from '../base';
type IElement = ModelNode | RawElement;
/**
 * 文本块实例类
 */
export declare class WrField extends ModelNode {
    name: 'w:r';
    type: "element";
    handler: "field";
    /** 父节点引用 */
    parent?: Wp;
    rPr?: WrPr;
    text: string;
    isComposition?: boolean;
    isPlaceholder?: boolean;
    elements?: IElement[];
    widgetMeta?: WidgetMeta;
    valuePath?: string;
    constructor(options: ModelNodeOptions & {
        text: string;
        rPr?: WrPr;
        elements?: IElement[];
        isComposition?: boolean;
        isPlaceholder?: boolean;
        widgetMeta?: WidgetMeta;
        valuePath?: string;
    });
    /**
     * 在指定位置插入文本
     * @param text 要插入的文本
     * @param position 插入位置，默认在末尾
     */
    insertText(text: string, position?: number): void;
    /**
     * 删除指定范围的文本
     * @param start 开始位置
     * @param length 删除长度，默认为 1
     */
    deleteText(start: number, length?: number): void;
    /**
     * 替换指定范围的文本
     * @param start 开始位置
     * @param length 替换长度
     * @param newText 新文本
     */
    replaceText(start: number, length: number, newText: string): void;
    /**
     * 确保 rPr 实例存在，如果不存在则创建一个新的 WrPr 实例
     */
    private ensureRPr;
    /**
     * 设置文本颜色
     * @param color 颜色值（hex 格式，如 '#ff0000'）
     */
    setColor(color: string): void;
    /**
     * 设置文本加粗
     * @param bold 是否加粗
     */
    setBold(bold: boolean): void;
    /**
     * 设置文本斜体
     * @param italic 是否斜体
     */
    setItalic(italic: boolean): void;
    /**
     * 设置文本下划线
     * @param underline 下划线类型（'none' | 'single' | 'double' 等）
     */
    setUnderline(underline?: string): void;
    /**
     * 设置文本删除线
     * @param strike 是否删除线
     */
    setStrike(strike: boolean): void;
    /**
     * 设置字体
     * @param fontFamily 字体名称
     */
    setFont(fontFamily: string): void;
    /**
     * 设置字号
     * @param fontSize 字号大小（半磅单位）
     */
    setFontSize(fontSize: number): void;
    /**
     * 设置样式
     * @param styleUpdates 要更新的样式对象（只更新指定的属性）
     */
    updateStyle(styleUpdates: Partial<TextStyle>): void;
    /**
     * 在指定字符位置拆分文本节点
     * @param index 拆分位置（在此字符之前分割）
     * @returns 返回 [beforeText, afterText]，边界情况返回 null
     * @example
     * const text = new WrText('Hello World');
     * const [before, after] = text.splitAt(5);
     * // before: WrText('Hello')，after: WrText(' World')
     * const [n, all] = text.splitAt(0);
     * // n 为 null，all 为 this（无分割）
     */
    splitAt(index: number): [WrText | null, WrText | null];
    /**
     * 从原始 XML JSON 转换为 WrText 实例
     * @param json w:r XML JSON 对象
     * @returns WrText 实例
     */
    static fromXmlJson(json: RawElement & {
        valuePath?: string;
        widgetMeta?: any;
    }): WrField;
    /**
     * 将实例转换为 XML JSON 格式
     * 结构：w:r
     *   ├── w:rPr（如果存在）
     *   ├── w:t（文本内容）
     *   └── 其他元素
     * @returns XML JSON 对象
     */
    toXmlJson(): RawElement;
}
export {};
