import { AuthorizationCodeOAuthFlow } from '../core/models/common/AuthorizationCodeOAuthFlow';
import { ClientCredentialsOAuthFlow } from '../core/models/common/ClientCredentialsOAuthFlow';
import { Components } from '../core/models/common/Components';
import { IDefinition } from '../core/models/common/IDefinition';
import { IExample } from '../core/models/common/IExample';
import { ImplicitOAuthFlow } from '../core/models/common/ImplicitOAuthFlow';
import { OAuthFlows } from '../core/models/common/OAuthFlows';
import { Operation } from '../core/models/common/Operation';
import { Parameter } from '../core/models/common/Parameter';
import { PasswordOAuthFlow } from '../core/models/common/PasswordOAuthFlow';
import { Schema } from '../core/models/common/Schema';
import { SecurityRequirement } from '../core/models/common/SecurityRequirement';
import { SecurityScheme } from '../core/models/common/SecurityScheme';
import { Server } from '../core/models/common/Server';
import { ServerVariable } from '../core/models/common/ServerVariable';
import { IOasPropertySchema } from '../openapi/models/IOasPropertySchema';
import { OasHeader } from '../openapi/models/OasHeader';
import { OasPathItem } from '../openapi/models/OasPathItem';
import { OasPaths } from '../openapi/models/OasPaths';
import { OasResponse } from '../openapi/models/OasResponse';
import { OasResponses } from '../openapi/models/OasResponses';
import { OasSchema } from '../openapi/models/OasSchema';
import { OasXML } from '../openapi/models/OasXML';
import { Oas30Callback } from '../openapi/v3/models/Oas30Callback';
import { Oas30CallbackDefinition } from '../openapi/v3/models/Oas30CallbackDefinition';
import { Oas30CallbackPathItem } from '../openapi/v3/models/Oas30CallbackPathItem';
import { Oas30Discriminator } from '../openapi/v3/models/Oas30Discriminator';
import { Oas30Encoding } from '../openapi/v3/models/Oas30Encoding';
import { Oas30ExampleDefinition } from '../openapi/v3/models/Oas30ExampleDefinition';
import { Oas30HeaderDefinition } from '../openapi/v3/models/Oas30HeaderDefinition';
import { Oas30Link } from '../openapi/v3/models/Oas30Link';
import { Oas30LinkDefinition } from '../openapi/v3/models/Oas30LinkDefinition';
import { Oas30LinkParameterExpression } from '../openapi/v3/models/Oas30LinkParameterExpression';
import { Oas30LinkRequestBodyExpression } from '../openapi/v3/models/Oas30LinkRequestBodyExpression';
import { Oas30LinkServer } from '../openapi/v3/models/Oas30LinkServer';
import { Oas30MediaType } from '../openapi/v3/models/Oas30MediaType';
import { Oas30RequestBody } from '../openapi/v3/models/Oas30RequestBody';
import { Oas30RequestBodyDefinition } from '../openapi/v3/models/Oas30RequestBodyDefinition';
import { IOas30Visitor } from '../openapi/v3/visitors/IOas30Visitor';
import { ModelClonerVisitor } from './ModelClonerVisitor';
/**
 * TODO: create model factories for OpenAPI (already exists for AsyncAPI) to make this easier
 *
 * @author eric.wittmann@gmail.com
 * @class
 * @extends ModelClonerVisitor
 */
export declare class Oas30ModelClonerVisitor extends ModelClonerVisitor implements IOas30Visitor {
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitPaths(io.apicurio.datamodels.openapi.models.OasPaths)
     * @param {OasPaths} node
     */
    visitPaths(node: OasPaths): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitPathItem(io.apicurio.datamodels.openapi.models.OasPathItem)
     * @param {OasPathItem} node
     */
    visitPathItem(node: OasPathItem): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponse(io.apicurio.datamodels.openapi.models.OasResponse)
     * @param {OasResponse} node
     */
    visitResponse(node: OasResponse): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponses(io.apicurio.datamodels.openapi.models.OasResponses)
     * @param {OasResponses} node
     */
    visitResponses(node: OasResponses): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitXML(io.apicurio.datamodels.openapi.models.OasXML)
     * @param {OasXML} node
     */
    visitXML(node: OasXML): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitAllOfSchema(io.apicurio.datamodels.openapi.models.OasSchema)
     * @param {OasSchema} node
     */
    visitAllOfSchema(node: OasSchema): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitItemsSchema(io.apicurio.datamodels.openapi.models.OasSchema)
     * @param {OasSchema} node
     */
    visitItemsSchema(node: OasSchema): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitAdditionalPropertiesSchema(io.apicurio.datamodels.openapi.models.OasSchema)
     * @param {OasSchema} node
     */
    visitAdditionalPropertiesSchema(node: OasSchema): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitPropertySchema(io.apicurio.datamodels.openapi.models.IOasPropertySchema)
     * @param {*} node
     */
    visitPropertySchema(node: IOasPropertySchema): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitHeader(io.apicurio.datamodels.openapi.models.OasHeader)
     * @param {OasHeader} node
     */
    visitHeader(node: OasHeader): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponseDefinition(io.apicurio.datamodels.core.models.common.IDefinition)
     * @param {*} node
     */
    visitResponseDefinition(node: IDefinition): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitExample(io.apicurio.datamodels.core.models.common.IExample)
     * @param {*} node
     */
    visitExample(node: IExample): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitOperation(io.apicurio.datamodels.core.models.common.Operation)
     * @param {Operation} node
     */
    visitOperation(node: Operation): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitParameterDefinition(io.apicurio.datamodels.core.models.common.IDefinition)
     * @param {*} node
     */
    visitParameterDefinition(node: IDefinition): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitParameter(io.apicurio.datamodels.core.models.common.Parameter)
     * @param {Parameter} node
     */
    visitParameter(node: Parameter): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSchemaDefinition(io.apicurio.datamodels.core.models.common.IDefinition)
     * @param {*} node
     */
    visitSchemaDefinition(node: IDefinition): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSchema(io.apicurio.datamodels.core.models.common.Schema)
     * @param {Schema} node
     */
    visitSchema(node: Schema): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSecurityRequirement(io.apicurio.datamodels.core.models.common.SecurityRequirement)
     * @param {SecurityRequirement} node
     */
    visitSecurityRequirement(node: SecurityRequirement): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSecurityScheme(io.apicurio.datamodels.core.models.common.SecurityScheme)
     * @param {SecurityScheme} node
     */
    visitSecurityScheme(node: SecurityScheme): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitComponents(io.apicurio.datamodels.core.models.common.Components)
     * @param {Components} node
     */
    visitComponents(node: Components): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitCallbackPathItem(io.apicurio.datamodels.openapi.v3.models.Oas30CallbackPathItem)
     * @param {Oas30CallbackPathItem} node
     */
    visitCallbackPathItem(node: Oas30CallbackPathItem): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitCallback(io.apicurio.datamodels.openapi.v3.models.Oas30Callback)
     * @param {Oas30Callback} node
     */
    visitCallback(node: Oas30Callback): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitLinkServer(io.apicurio.datamodels.openapi.v3.models.Oas30LinkServer)
     * @param {Oas30LinkServer} node
     */
    visitLinkServer(node: Oas30LinkServer): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitCallbackDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30CallbackDefinition)
     * @param {Oas30CallbackDefinition} node
     */
    visitCallbackDefinition(node: Oas30CallbackDefinition): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitLink(io.apicurio.datamodels.openapi.v3.models.Oas30Link)
     * @param {Oas30Link} node
     */
    visitLink(node: Oas30Link): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitLinkRequestBodyExpression(io.apicurio.datamodels.openapi.v3.models.Oas30LinkRequestBodyExpression)
     * @param {Oas30LinkRequestBodyExpression} node
     */
    visitLinkRequestBodyExpression(node: Oas30LinkRequestBodyExpression): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitLinkParameterExpression(io.apicurio.datamodels.openapi.v3.models.Oas30LinkParameterExpression)
     * @param {Oas30LinkParameterExpression} node
     */
    visitLinkParameterExpression(node: Oas30LinkParameterExpression): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitLinkDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30LinkDefinition)
     * @param {Oas30LinkDefinition} node
     */
    visitLinkDefinition(node: Oas30LinkDefinition): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitAuthorizationCodeOAuthFlow(io.apicurio.datamodels.core.models.common.AuthorizationCodeOAuthFlow)
     * @param {AuthorizationCodeOAuthFlow} node
     */
    visitAuthorizationCodeOAuthFlow(node: AuthorizationCodeOAuthFlow): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitClientCredentialsOAuthFlow(io.apicurio.datamodels.core.models.common.ClientCredentialsOAuthFlow)
     * @param {ClientCredentialsOAuthFlow} node
     */
    visitClientCredentialsOAuthFlow(node: ClientCredentialsOAuthFlow): void;
    /**
     *
     * @param {PasswordOAuthFlow} node
     */
    visitPasswordOAuthFlow(node: PasswordOAuthFlow): void;
    /**
     *
     * @param {ImplicitOAuthFlow} node
     */
    visitImplicitOAuthFlow(node: ImplicitOAuthFlow): void;
    /**
     *
     * @param {OAuthFlows} node
     */
    visitOAuthFlows(node: OAuthFlows): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitEncoding(io.apicurio.datamodels.openapi.v3.models.Oas30Encoding)
     * @param {Oas30Encoding} node
     */
    visitEncoding(node: Oas30Encoding): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitMediaType(io.apicurio.datamodels.openapi.v3.models.Oas30MediaType)
     * @param {Oas30MediaType} node
     */
    visitMediaType(node: Oas30MediaType): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitHeaderDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30HeaderDefinition)
     * @param {Oas30HeaderDefinition} node
     */
    visitHeaderDefinition(node: Oas30HeaderDefinition): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitRequestBody(io.apicurio.datamodels.openapi.v3.models.Oas30RequestBody)
     * @param {Oas30RequestBody} node
     */
    visitRequestBody(node: Oas30RequestBody): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitRequestBodyDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30RequestBodyDefinition)
     * @param {Oas30RequestBodyDefinition} node
     */
    visitRequestBodyDefinition(node: Oas30RequestBodyDefinition): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitExampleDefinition(io.apicurio.datamodels.openapi.v3.models.Oas30ExampleDefinition)
     * @param {Oas30ExampleDefinition} node
     */
    visitExampleDefinition(node: Oas30ExampleDefinition): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitDiscriminator(io.apicurio.datamodels.openapi.v3.models.Oas30Discriminator)
     * @param {Oas30Discriminator} node
     */
    visitDiscriminator(node: Oas30Discriminator): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitNotSchema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30NotSchema)
     * @param {Oas30Schema.Oas30NotSchema} node
     */
    visitNotSchema(node: Oas30Schema.Oas30NotSchema): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitOneOfSchema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30OneOfSchema)
     * @param {Oas30Schema.Oas30OneOfSchema} node
     */
    visitOneOfSchema(node: Oas30Schema.Oas30OneOfSchema): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitAnyOfSchema(io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30AnyOfSchema)
     * @param {Oas30Schema.Oas30AnyOfSchema} node
     */
    visitAnyOfSchema(node: Oas30Schema.Oas30AnyOfSchema): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitServer(io.apicurio.datamodels.core.models.common.Server)
     * @param {Server} node
     */
    visitServer(node: Server): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitServerVariable(io.apicurio.datamodels.core.models.common.ServerVariable)
     * @param {ServerVariable} node
     */
    visitServerVariable(node: ServerVariable): void;
    constructor();
}
import { Oas30Schema } from '../openapi/v3/models/Oas30Schema';
