import { RawElement } from '../types/raw';
import { ModelNode, ModelNodeOptions } from '../base';
/**
 * 段落属性节点 - 保存 w:pPr 及其子元素
 *
 * 作为简单容器，保持原始 XML 结构不做转换
 */
export declare class WtblPr extends ModelNode {
    /** 节点名称 */
    name: 'w:tblPr';
    /** 节点类型 */
    type: "element";
    elements: RawElement[];
    constructor(options: ModelNodeOptions & {
        elements?: RawElement[];
    });
    get styleId(): string | undefined;
    /**
     * 从原始 XML JSON 转换为 WpPr 实例
     *
     * @param json - 原始 XML JSON 数据
     * @returns WpPr 实例
     */
    static fromXmlJson(json: RawElement): WtblPr;
    /**
     * 将 WpPr 实例转换为原始 XML JSON
     *
     * @returns RawElement 格式的 XML JSON
     */
    toXmlJson(): RawElement;
    /**
     * 获取指定名称的子元素（快速访问，避免遍历）
     *
     * @param name - 查找的元素名称，如 'w:pStyle'、'w:keepNext'
     * @returns 找到的第一个匹配元素，不存在则返回 undefined
     *
     * @example
     * const pStyle = wpPr.getElement('w:pStyle');
     */
    getElement(name: string): RawElement | undefined;
    /**
     * 获取指定名称的元素属性值
     *
     * @param elementName - 元素名称，如 'w:jc'
     * @param attrName - 属性名称，如 'w:val'
     * @returns 属性值
     *
     * @example
     * const align = wpPr.getAttrValue('w:jc', 'w:val'); // 'center'
     */
    getAttrValue(elementName: string, attrName: string): string | undefined;
    /**
     * 设置或更新指定名称的子元素
     *
     * @param element - 新的元素，应包含 name 和 type
     *
     * @example
     * wpPr.setElement({ name: 'w:pStyle', type: 'element', '@attrs': { 'w:val': 'Heading1' } });
     */
    setElement(element: RawElement): void;
    /**
     * 删除指定名称的子元素
     *
     * @param name - 要删除的元素名称
     * @returns 是否成功删除
     *
     * @example
     * wpPr.removeElement('w:keepNext');
     */
    removeElement(name: string): boolean;
}
