import { ExtensibleNode } from '../../core/models/ExtensibleNode';
import { IIndexedNode } from '../../core/models/IIndexedNode';
import { IVisitor } from '../../core/visitors/IVisitor';
/**
 * Models an OpenAPI responses.
 * @author eric.wittmann@gmail.com
 * @class
 * @extends ExtensibleNode
 */
export declare abstract class OasResponses extends ExtensibleNode implements IIndexedNode<OasResponse> {
    default_: OasResponse;
    _responses: any;
    /**
     * @see io.apicurio.datamodels.core.models.Node#accept(io.apicurio.datamodels.core.visitors.IVisitor)
     * @param {*} visitor
     */
    accept(visitor: IVisitor): void;
    /**
     * Returns a single response by status code.
     * @param {string} statusCode
     * @return {OasResponse}
     */
    getResponse(statusCode: string): OasResponse;
    /**
     * Returns an array of all the responses.
     * @return {OasResponse[]}
     */
    getResponses(): Array<OasResponse>;
    /**
     * Adds a response.
     * @param {string} statusCode
     * @param {OasResponse} response
     * @return {OasResponse}
     */
    addResponse(statusCode: string, response: OasResponse): OasResponse;
    /**
     * Removes a single response child model.
     * @param {string} statusCode
     * @return {OasResponse}
     */
    removeResponse(statusCode: string): OasResponse;
    /**
     * Gets a list of all the response status codes.
     * @return {string[]}
     */
    getResponseStatusCodes(): Array<string>;
    /**
     * Creates an OAS Response object.
     * @param {string} statusCode
     * @return {OasResponse}
     */
    abstract createResponse(statusCode: string): OasResponse;
    /**
     * Creates a default OAS response.
     * @return {OasResponse}
     */
    createDefaultResponse(): OasResponse;
    /**
     * @see io.apicurio.datamodels.core.models.IIndexedNode#getItem(java.lang.String)
     * @param {string} name
     * @return {OasResponse}
     */
    getItem(name: string): OasResponse;
    /**
     * @see io.apicurio.datamodels.core.models.IIndexedNode#getItems()
     * @return {OasResponse[]}
     */
    getItems(): Array<OasResponse>;
    /**
     * @see io.apicurio.datamodels.core.models.IIndexedNode#getItemNames()
     * @return {string[]}
     */
    getItemNames(): Array<string>;
    addItem$java_lang_String$io_apicurio_datamodels_openapi_models_OasResponse(name: string, item: OasResponse): void;
    /**
     * @see io.apicurio.datamodels.core.models.IIndexedNode#addItem(java.lang.String, io.apicurio.datamodels.core.models.Node)
     * @param {string} name
     * @param {OasResponse} item
     */
    addItem(name?: any, item?: any): any;
    /**
     * @see io.apicurio.datamodels.core.models.IIndexedNode#deleteItem(java.lang.String)
     * @param {string} name
     * @return {OasResponse}
     */
    deleteItem(name: string): OasResponse;
    constructor();
}
import { OasResponse } from './OasResponse';
