import { Aai20Document } from '../../asyncapi/v2/models/Aai20Document';
import { Document } from '../../core/models/Document';
import { OasDocument } from '../../openapi/models/OasDocument';
import { Oas20Document } from '../../openapi/v2/models/Oas20Document';
import { Oas30Document } from '../../openapi/v3/models/Oas30Document';
import { ReplaceNodeCommand } from './ReplaceNodeCommand';
/**
 * A command used to replace a path item with a newer version.
 * @author eric.wittmann@gmail.com
 * @extends ReplaceNodeCommand
 * @class
 */
export declare class ReplaceDocumentCommand extends ReplaceNodeCommand<Document> {
    constructor(old?: any, replacement?: any);
    removeNode$io_apicurio_datamodels_core_models_Document$io_apicurio_datamodels_core_models_Document(doc: Document, node: Document): void;
    /**
     * @see io.apicurio.datamodels.cmd.commands.ReplaceNodeCommand#removeNode(io.apicurio.datamodels.core.models.Document, io.apicurio.datamodels.core.models.Node)
     * @param {Document} doc
     * @param {Document} node
     */
    removeNode(doc?: any, node?: any): any;
    addNode$io_apicurio_datamodels_core_models_Document$io_apicurio_datamodels_core_models_Document(doc: Document, node: Document): void;
    /**
     * @see io.apicurio.datamodels.cmd.commands.ReplaceNodeCommand#addNode(io.apicurio.datamodels.core.models.Document, io.apicurio.datamodels.core.models.Node)
     * @param {Document} doc
     * @param {Document} node
     */
    addNode(doc?: any, node?: any): any;
    /**
     * @see io.apicurio.datamodels.cmd.commands.ReplaceNodeCommand#readNode(io.apicurio.datamodels.core.models.Document, java.lang.Object)
     * @param {Document} doc
     * @param {*} node
     * @return {Document}
     */
    readNode(doc: Document, node: any): Document;
    /**
     * Resets a 2.0 OAI document by nulling out all of its properties.
     * @param {Oas20Document} doc
     * @private
     */
    resetOas2xDocument(doc: Oas20Document): void;
    /**
     * Resets a 3.x OAI document by nulling out all of its properties.
     * @param {Oas30Document} doc
     * @private
     */
    resetOas3xDocument(doc: Oas30Document): void;
    /**
     * Resets a 2.0 AAI document by nulling out all of its properties.
     * @param {Aai20Document} doc
     * @private
     */
    resetAai2xDocument(doc: Aai20Document): void;
    /**
     * Resets the common properties of an OAS doc.
     * @param {OasDocument} doc
     * @private
     */
    resetOasDocument(doc: OasDocument): void;
    /**
     * Resets the common properties.
     * @param {Document} doc
     * @private
     */
    resetDocument(doc: Document): void;
}
