import { AbstractCommand } from '../AbstractCommand';
import { CombinedVisitorAdapter } from '../../combined/visitors/CombinedVisitorAdapter';
import { Document } from '../../core/models/Document';
import { NodePath } from '../../core/models/NodePath';
import { Operation } from '../../core/models/common/Operation';
import { OasPathItem } from '../../openapi/models/OasPathItem';
/**
 * A command used to rename a parameter.
 * @author eric.wittmann@gmail.com
 * @extends AbstractCommand
 * @class
 */
export declare class RenameParameterCommand extends AbstractCommand {
    _parentPath: NodePath;
    _oldParamName: string;
    _newParamName: string;
    _paramIn: string;
    isPathItem: boolean;
    isOperation: boolean;
    constructor(parent?: any, oldParamName?: any, newParamName?: any, paramIn?: 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 param from one name to another.
     * @param {Document} document
     * @param {string} from
     * @param {string} to
     * @private
     */
    _doParameterRename(document: Document, from: string, to: string): void;
}
export declare namespace RenameParameterCommand {
    class RenameParameterCommand$0 extends CombinedVisitorAdapter {
        __parent: any;
        /**
         *
         * @param {OasPathItem} node
         */
        visitPathItem(node: OasPathItem): void;
        /**
         *
         * @param {Operation} node
         */
        visitOperation(node: Operation): void;
        constructor(__parent: any);
    }
}
