import { Components } from '../../../core/models/common/Components';
import { IVisitor } from '../../../core/visitors/IVisitor';
/**
 * Constructor.
 * @class
 * @extends Components
 * @author eric.wittmann@gmail.com
 */
export declare class Oas30Components extends Components {
    schemas: any;
    responses: any;
    parameters: any;
    examples: any;
    requestBodies: any;
    headers: any;
    securitySchemes: any;
    links: any;
    callbacks: any;
    constructor();
    /**
     * @see io.apicurio.datamodels.core.models.Node#accept(io.apicurio.datamodels.core.visitors.IVisitor)
     * @param {*} visitor
     */
    accept(visitor: IVisitor): void;
    /**
     * Creates a schema definition.
     * @param {string} name
     * @return {Oas30SchemaDefinition}
     */
    createSchemaDefinition(name: string): Oas30SchemaDefinition;
    /**
     * Adds a schema definition.
     * @param {string} name
     * @param {Oas30SchemaDefinition} schemaDefinition
     */
    addSchemaDefinition(name: string, schemaDefinition: Oas30SchemaDefinition): void;
    /**
     * Gets a single schema definition by name.
     * @param {string} name
     * @return {Oas30SchemaDefinition}
     */
    getSchemaDefinition(name: string): Oas30SchemaDefinition;
    /**
     * Removes a single schema definition and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {Oas30SchemaDefinition}
     */
    removeSchemaDefinition(name: string): Oas30SchemaDefinition;
    /**
     * Gets a list of all schema definitions.
     * @return {Oas30SchemaDefinition[]}
     */
    getSchemaDefinitions(): Array<Oas30SchemaDefinition>;
    /**
     * Creates a response definition.
     * @param {string} name
     * @return {Oas30ResponseDefinition}
     */
    createResponseDefinition(name: string): Oas30ResponseDefinition;
    /**
     * Adds a response definition.
     * @param {string} name
     * @param {Oas30ResponseDefinition} responseDefinition
     */
    addResponseDefinition(name: string, responseDefinition: Oas30ResponseDefinition): void;
    /**
     * Gets a single response definition by name.
     * @param {string} name
     * @return {Oas30ResponseDefinition}
     */
    getResponseDefinition(name: string): Oas30ResponseDefinition;
    /**
     * Removes a single response definition and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {Oas30ResponseDefinition}
     */
    removeResponseDefinition(name: string): Oas30ResponseDefinition;
    /**
     * Gets a list of all response definitions.
     * @return {Oas30ResponseDefinition[]}
     */
    getResponseDefinitions(): Array<Oas30ResponseDefinition>;
    /**
     * Creates a parameter definition.
     * @param {string} name
     * @return {Oas30ParameterDefinition}
     */
    createParameterDefinition(name: string): Oas30ParameterDefinition;
    /**
     * Adds a parameter definition.
     * @param {string} name
     * @param {Oas30ParameterDefinition} parameterDefinition
     */
    addParameterDefinition(name: string, parameterDefinition: Oas30ParameterDefinition): void;
    /**
     * Gets a single parameter definition by name.
     * @param {string} name
     * @return {Oas30ParameterDefinition}
     */
    getParameterDefinition(name: string): Oas30ParameterDefinition;
    /**
     * Removes a single parameter definition and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {Oas30ParameterDefinition}
     */
    removeParameterDefinition(name: string): Oas30ParameterDefinition;
    /**
     * Gets a list of all parameter definitions.
     * @return {Oas30ParameterDefinition[]}
     */
    getParameterDefinitions(): Array<Oas30ParameterDefinition>;
    /**
     * Creates a example definition.
     * @param {string} name
     * @return {Oas30ExampleDefinition}
     */
    createExampleDefinition(name: string): Oas30ExampleDefinition;
    /**
     * Adds a example definition.
     * @param {string} name
     * @param {Oas30ExampleDefinition} exampleDefinition
     */
    addExampleDefinition(name: string, exampleDefinition: Oas30ExampleDefinition): void;
    /**
     * Gets a single example definition by name.
     * @param {string} name
     * @return {Oas30ExampleDefinition}
     */
    getExampleDefinition(name: string): Oas30ExampleDefinition;
    /**
     * Removes a single example definition and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {Oas30ExampleDefinition}
     */
    removeExampleDefinition(name: string): Oas30ExampleDefinition;
    /**
     * Gets a list of all example definitions.
     * @return {Oas30ExampleDefinition[]}
     */
    getExampleDefinitions(): Array<Oas30ExampleDefinition>;
    /**
     * Creates a request body definition.
     * @param {string} name
     * @return {Oas30RequestBodyDefinition}
     */
    createRequestBodyDefinition(name: string): Oas30RequestBodyDefinition;
    /**
     * Adds a request body definition.
     * @param {string} name
     * @param {Oas30RequestBodyDefinition} requestBodyDefinition
     */
    addRequestBodyDefinition(name: string, requestBodyDefinition: Oas30RequestBodyDefinition): void;
    /**
     * Gets a single request body definition by name.
     * @param {string} name
     * @return {Oas30RequestBodyDefinition}
     */
    getRequestBodyDefinition(name: string): Oas30RequestBodyDefinition;
    /**
     * Removes a single request body definition and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {Oas30RequestBodyDefinition}
     */
    removeRequestBodyDefinition(name: string): Oas30RequestBodyDefinition;
    /**
     * Gets a list of all request body definitions.
     * @return {Oas30RequestBodyDefinition[]}
     */
    getRequestBodyDefinitions(): Array<Oas30RequestBodyDefinition>;
    /**
     * Creates a header definition.
     * @param {string} name
     * @return {Oas30HeaderDefinition}
     */
    createHeaderDefinition(name: string): Oas30HeaderDefinition;
    /**
     * Adds a header definition.
     * @param {string} name
     * @param {Oas30HeaderDefinition} headerDefinition
     */
    addHeaderDefinition(name: string, headerDefinition: Oas30HeaderDefinition): void;
    /**
     * Gets a single header definition by name.
     * @param {string} name
     * @return {Oas30HeaderDefinition}
     */
    getHeaderDefinition(name: string): Oas30HeaderDefinition;
    /**
     * Removes a single header definition and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {Oas30HeaderDefinition}
     */
    removeHeaderDefinition(name: string): Oas30HeaderDefinition;
    /**
     * Gets a list of all header definitions.
     * @return {Oas30HeaderDefinition[]}
     */
    getHeaderDefinitions(): Array<Oas30HeaderDefinition>;
    /**
     * Creates a security scheme definition.
     * @param {string} name
     * @return {Oas30SecurityScheme}
     */
    createSecurityScheme(name: string): Oas30SecurityScheme;
    /**
     * Adds a security scheme definition.
     * @param {string} name
     * @param {Oas30SecurityScheme} securityScheme
     */
    addSecurityScheme(name: string, securityScheme: Oas30SecurityScheme): void;
    /**
     * Gets a single security scheme definition by name.
     * @param {string} name
     * @return {Oas30SecurityScheme}
     */
    getSecurityScheme(name: string): Oas30SecurityScheme;
    /**
     * Removes a single security scheme definition and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {Oas30SecurityScheme}
     */
    removeSecurityScheme(name: string): Oas30SecurityScheme;
    /**
     * Gets a list of all security scheme definitions.
     * @return {Oas30SecurityScheme[]}
     */
    getSecuritySchemes(): Array<Oas30SecurityScheme>;
    /**
     * Creates a link definition.
     * @param {string} name
     * @return {Oas30LinkDefinition}
     */
    createLinkDefinition(name: string): Oas30LinkDefinition;
    /**
     * Adds a link definition.
     * @param {string} name
     * @param {Oas30LinkDefinition} linkDefinition
     */
    addLinkDefinition(name: string, linkDefinition: Oas30LinkDefinition): void;
    /**
     * Gets a single link definition by name.
     * @param {string} name
     * @return {Oas30LinkDefinition}
     */
    getLinkDefinition(name: string): Oas30LinkDefinition;
    /**
     * Removes a single link definition and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {Oas30LinkDefinition}
     */
    removeLinkDefinition(name: string): Oas30LinkDefinition;
    /**
     * Gets a list of all link definitions.
     * @return {Oas30LinkDefinition[]}
     */
    getLinkDefinitions(): Array<Oas30LinkDefinition>;
    /**
     * Creates a callback definition.
     * @param {string} name
     * @return {Oas30CallbackDefinition}
     */
    createCallbackDefinition(name: string): Oas30CallbackDefinition;
    /**
     * Adds a callback definition.
     * @param {string} name
     * @param {Oas30CallbackDefinition} callbackDefinition
     */
    addCallbackDefinition(name: string, callbackDefinition: Oas30CallbackDefinition): void;
    /**
     * Gets a single callback definition by name.
     * @param {string} name
     * @return {Oas30CallbackDefinition}
     */
    getCallbackDefinition(name: string): Oas30CallbackDefinition;
    /**
     * Removes a single callback definition and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {Oas30CallbackDefinition}
     */
    removeCallbackDefinition(name: string): Oas30CallbackDefinition;
    /**
     * Gets a list of all callback definitions.
     * @return {Oas30CallbackDefinition[]}
     */
    getCallbackDefinitions(): Array<Oas30CallbackDefinition>;
}
import { Oas30CallbackDefinition } from './Oas30CallbackDefinition';
import { Oas30LinkDefinition } from './Oas30LinkDefinition';
import { Oas30SecurityScheme } from './Oas30SecurityScheme';
import { Oas30HeaderDefinition } from './Oas30HeaderDefinition';
import { Oas30RequestBodyDefinition } from './Oas30RequestBodyDefinition';
import { Oas30ExampleDefinition } from './Oas30ExampleDefinition';
import { Oas30ParameterDefinition } from './Oas30ParameterDefinition';
import { Oas30ResponseDefinition } from './Oas30ResponseDefinition';
import { Oas30SchemaDefinition } from './Oas30SchemaDefinition';
