import { DocModel } from '../DocModel';
export interface ModelNodeOptions {
    id?: string;
    attrs?: Record<string, any>;
    content?: string;
    parent?: any;
    root?: DocModel;
}
/**
 * 文档树节点基类
 * 为所有树节点提供统一的基础属性和操作接口
 */
export declare abstract class ModelNode {
    id: string;
    abstract name: string;
    type: 'element' | 'text';
    attrs?: Record<string, any>;
    content?: string;
    parent?: any;
    root?: DocModel;
    constructor(options: ModelNodeOptions);
    /**
     * 将实例转换为快照对象
     * @returns 快照对象
     */
    /**
     * 将实例转换为 XML JSON 格式
     * @returns XML JSON 对象
     */
    abstract toXmlJson(): any;
    /**
     * 从快照对象创建实例
     * @param snapshot 快照对象
     * @returns 新的实例
     */
    /**
     * 从 XML JSON 创建实例
     * @param json XML JSON 对象
     * @returns 新的实例
     */
    static fromXmlJson(json: any): any;
    remove(): void;
    getCurrentIndex(): number;
    /**
     * 获取根节点（顶层 DocModel 对象）
     * @returns DocModel 根节点，如果找不到则返回 null
     */
    getRoot(): DocModel | null;
    /**
     * 获取前一个兄弟节点
     * @returns 前一个兄弟节点，如果没有则返回 null
     */
    getPrev(): ModelNode | null;
    /**
     * 获取后一个兄弟节点
     * @returns 后一个兄弟节点，如果没有则返回 null
     */
    getNext(): ModelNode | null;
    /**
     * 基于 toXmlJson 的克隆实现
     * 将实例转换为 XML JSON，再从 XML JSON 创建新实例
     * @returns 克隆后的新实例
     */
    clone<T extends this>(this: T, options?: Partial<T>): T;
}
