import { ISecurityRequirementParent } from '../../core/models/common/ISecurityRequirementParent';
import { Operation } from '../../core/models/common/Operation';
import { SecurityRequirement } from '../../core/models/common/SecurityRequirement';
/**
 * Constructor.
 * @param {string} method
 * @class
 * @extends Operation
 * @author eric.wittmann@gmail.com
 */
export declare abstract class OasOperation extends Operation implements IOasParameterParent, ISecurityRequirementParent {
    tags: Array<string>;
    parameters: Array<OasParameter>;
    responses: OasResponses;
    deprecated: boolean;
    security: Array<SecurityRequirement>;
    constructor(method: string);
    /**
     * @see io.apicurio.datamodels.openapi.models.IOasParameterParent#getParameters()
     * @return {OasParameter[]}
     */
    getParameters(): Array<OasParameter>;
    /**
     * @see io.apicurio.datamodels.openapi.models.IOasParameterParent#getParametersIn(java.lang.String)
     * @param {string} in
     * @return {OasParameter[]}
     */
    getParametersIn(__in: string): Array<OasParameter>;
    /**
     * Gets the operation's method.
     * @return {string}
     */
    getMethod(): string;
    /**
     * Creates a child parameter model.
     * @return {OasParameter}
     */
    abstract createParameter(): OasParameter;
    /**
     * Returns a single, unique parameter identified by "in" and "name" (which are the two
     * properties that uniquely identify a parameter).  Returns null if no parameter is found.
     * @param {string} in
     * @param {string} name
     * @return {OasParameter}
     */
    getParameter(__in: string, name: string): OasParameter;
    /**
     * Adds a parameter.
     * @param {OasParameter} parameter
     * @return {OasParameter}
     */
    addParameter(parameter: OasParameter): OasParameter;
    /**
     * Creates a child responses model.
     * @return {OasResponses}
     */
    abstract createResponses(): OasResponses;
    /**
     * @see io.apicurio.datamodels.core.models.common.ISecurityRequirementParent#createSecurityRequirement()
     * @return {OasSecurityRequirement}
     */
    abstract createSecurityRequirement(): OasSecurityRequirement;
    /**
     * @see io.apicurio.datamodels.core.models.common.ISecurityRequirementParent#addSecurityRequirement(io.apicurio.datamodels.core.models.common.SecurityRequirement)
     * @param {SecurityRequirement} securityRequirement
     * @return {SecurityRequirement}
     */
    addSecurityRequirement(securityRequirement: SecurityRequirement): SecurityRequirement;
    /**
     * @see io.apicurio.datamodels.core.models.common.ISecurityRequirementParent#getSecurityRequirements()
     * @return {SecurityRequirement[]}
     */
    getSecurityRequirements(): Array<SecurityRequirement>;
}
import { OasSecurityRequirement } from './OasSecurityRequirement';
import { OasResponses } from './OasResponses';
import { OasParameter } from './OasParameter';
import { IOasParameterParent } from './IOasParameterParent';
