import { AbstractCommand } from '../AbstractCommand'; import { Document } from '../../core/models/Document'; import { Node } from '../../core/models/Node'; import { NodePath } from '../../core/models/NodePath'; /** * Base class for commands that replace entire nodes. * @author eric.wittmann@gmail.com * @extends AbstractCommand * @class */ export declare abstract class ReplaceNodeCommand extends AbstractCommand { _nodePath: NodePath; _new: any; _old: any; constructor(old?: any, replacement?: any); /** * @see io.apicurio.datamodels.cmd.ICommand#execute(io.apicurio.datamodels.core.models.Document) * @param {Document} document */ execute(document: Document): void; /** * @see io.apicurio.datamodels.cmd.ICommand#undo(io.apicurio.datamodels.core.models.Document) * @param {Document} document */ undo(document: Document): void; /** * Removes the given node from the data model. * @param {Document} doc * @param {Node} node */ abstract removeNode(doc: Document, node: T): any; /** * Adds the given node to the data model. * @param {Document} doc * @param {Node} node */ abstract addNode(doc: Document, node: T): any; /** * Unmarshalls a node into the appropriate type. * @param {*} node * @param {Document} doc * @return {Node} */ abstract readNode(doc: Document, node: any): T; }