import { RawElement } from '../types/raw';
import { Wbody } from './Wbody';
import { Wtc } from './Wtc';
import { WrText } from './WrText';
import { WrImage } from './WrImage';
import { WrField } from './WrField';
import { WrPageWidget } from './WrPageWidget';
import { ModelGroup, ModelGroupOptions } from '../base';
import { WpPr } from './WpPr';
/**
 * Run 类型定义 - 可以是文本 Run 或图片 Run
 */
export type Wr = WrText | WrImage | WrField | WrPageWidget;
export declare class Wp extends ModelGroup {
    name: 'w:p';
    type: "element";
    pPr?: WpPr;
    parent?: Wbody | Wtc;
    constructor(options: ModelGroupOptions & {
        pPr?: WpPr;
    });
    /** 将 pPr 挂到段落节点，供样式解析沿 parent 链查找 styles */
    private bindPPrParent;
    get styleId(): string | undefined;
    /**
     * runs 属性别名，指向 children
     */
    get runs(): Wr[];
    get hasContent(): boolean;
    /**
     * 将所有子元素移动到另一个段落
     * @param targetWp 目标段落
     */
    moveAllChildrenTo(targetWp: Wp): void;
    static fromXmlJson(json: RawElement): Wp;
    toXmlJson(): RawElement;
    /**
     * 在指定位置拆分段落
     *
     * @param index - 拆分位置（子元素索引）
     * @returns [前半部分段落, 后半部分段落]
     *   - 如果 index <= 0，返回 [null, this]（无前半）
     *   - 如果 index >= children.length，返回 [this, null]（无后半）
     *   - 否则返回 [beforeWp, afterWp]（正常拆分）
     *
     * @remarks
     * 基于 children 拆分（不是 runs），保留所有子元素包括 RawElement
     * 拆分后：
     * - this 保留前半部分的子元素
     * - newWp 包含后半部分的子元素
     * - newWp 被插入到 this 的后面（在父容器中）
     */
    splitAt(index: number): [Wp | null, Wp | null];
    /**
     * 确保 rPr 实例存在，如果不存在则创建一个新的 WrPr 实例
     */
    private ensurePPr;
    /**
     * 设置段落对齐方式
     * @param alignment 对齐方式 ('left' | 'center' | 'right' | 'justify' 等)
     *
     * @example
     * wp.setAlignment('center');
     */
    setAlignment(alignment: string): void;
    /**
     * 从模板创建段落
     * @param width 单元格宽度（DXA/缇）
     * @returns Wtc 实例
     */
    static fromTemplate(): Wp;
}
