import { AbstractCommand } from '../AbstractCommand';
import { SimplifiedParameterType } from '../models/SimplifiedParameterType';
import { Document } from '../../core/models/Document';
import { NodePath } from '../../core/models/NodePath';
import { IOasParameterParent } from '../../openapi/models/IOasParameterParent';
import { OasOperation } from '../../openapi/models/OasOperation';
import { OasParameter } from '../../openapi/models/OasParameter';
/**
 * A command used to create a new parameter.
 * @author eric.wittmann@gmail.com
 * @extends AbstractCommand
 * @class
 */
export declare class NewParamCommand extends AbstractCommand {
    _paramName: string;
    _paramType: string;
    _parentPath: NodePath;
    _description: string;
    _newType: SimplifiedParameterType;
    _override: boolean;
    _created: boolean;
    constructor(parent?: any, paramName?: any, paramType?: any, description?: any, newType?: any, override?: 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;
    /**
     * Sets the parameter type.
     * @param {OasParameter} parameter
     */
    _setParameterType(parameter: OasParameter): void;
    /**
     * Returns true if the given param already exists in the parent.
     * @param {string} paramName
     * @param {string} paramType
     * @param {*} parent
     * @returns {boolean}
     * @return {boolean}
     * @private
     */
    hasParam(paramName: string, paramType: string, parent: IOasParameterParent): boolean;
    /**
     * Tries to find the parameter being overridden (if any).  Returns null if it can't
     * find something.
     * @param {OasOperation} operation
     * @return {OasParameter}
     */
    findOverridableParam(operation: OasOperation): OasParameter;
}
