import { AbstractCommand } from '../AbstractCommand';
import { Document } from '../../core/models/Document';
import { OasDocument } from '../../openapi/models/OasDocument';
import { OasPathItem } from '../../openapi/models/OasPathItem';
/**
 * A command used to rename a path item, along with all references to it.
 * @author eric.wittmann@gmail.com
 * @extends AbstractCommand
 * @class
 */
export declare class RenamePathItemCommand extends AbstractCommand {
    _oldPath: string;
    _newPath: string;
    _alsoRenameSubpaths: boolean;
    constructor(oldPath?: any, newPath?: any, alsoRenameSubpaths?: 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;
    /**
     * Does the work of renaming a path from one name to another.
     * @param {Document} document
     * @param {string} from
     * @param {string} to
     * @param {boolean} alsoRenameSubpaths
     * @private
     */
    _doPathRename(document: Document, from: string, to: string, alsoRenameSubpaths: boolean): void;
    /**
     * Does the work of renaming a path.
     * @param {string} from
     * @param {string} to
     * @param {OasDocument} document
     * @private
     */
    _renamePath(document: OasDocument, from: string, to: string): void;
    /**
     * Rename a path parameter.
     * @param {OasPathItem} path
     * @param {string} fromParamName
     * @param {string} toParamName
     * @private
     */
    _renamePathParameter(path: OasPathItem, fromParamName: string, toParamName: string): void;
    /**
     * Remove a path parameter.
     * @param {OasPathItem} path
     * @param {string} fromParamName
     * @private
     */
    _removePathParameter(path: OasPathItem, fromParamName: string): void;
}
