import { RawElement } from '../types/raw';
import { Wp } from './Wp';
import { Wimages } from '../images';
import { ModelNode, ModelNodeOptions } from '../base';
import { WrPr } from './WrPr';
type drawingData = {
    id: string;
    name: string;
    descr: string;
    width: number;
    height: number;
    embedId: string;
    rawDrawing?: RawElement;
};
export declare class WrImage extends ModelNode {
    name: 'w:r';
    type: "element";
    handler: "image";
    /** 父节点引用 */
    parent?: Wp;
    rPr?: WrPr;
    drawing?: drawingData;
    constructor(options: ModelNodeOptions & {
        rPr?: WrPr;
        drawing?: drawingData;
    });
    /**
     * 调整图片尺寸
     * @param width 新宽度
     * @param height 新高度
     */
    resize(width: number, height: number): void;
    /**
     * 设置图片描述
     * @param description 描述文本
     */
    setDescription(description: string): void;
    /**
     * 从原始 w:drawing XML JSON 解析图片信息
     */
    static fromDrawingXml(json: RawElement): drawingData;
    /**
     * 图片是原子元素，无法拆分
     * @param index 拆分位置（被忽略）
     * @returns 对于原子元素，返回 [null, this] 或 [this, null] 表示无法拆分
     * @example
     * const [before, after] = image.splitAt(0);
     * // before: null，after: this（图片作为整体保留）
     */
    splitAt(index: number): [WrImage | null, WrImage | null];
    /** 需要进行拼接成运行时的 modelId */
    cloneWithSuffix(suffix: string, index: string | undefined): WrImage;
    /**
     * 从原始 XML JSON 转换为 WrImage 实例
     * @param json w:r XML JSON 对象
     * @returns WrImage 实例
     */
    static fromXmlJson(json: RawElement): WrImage;
    toXmlJson(): RawElement;
    /**
     * 更新 w:drawing XML 中的修改过的属性
     * @param drawingXml 原始的 w:drawing XML 对象
     * @param data 当前的 drawing 数据
     */
    private updateDrawingXml;
    static fromTemplate(payload: {
        imageManager: Wimages;
        width: number;
        height: number;
        src: string;
    }): WrImage;
}
export {};
