import { Document } from '../../../core/models/Document';
import { AuthorizationCodeOAuthFlow } from '../../../core/models/common/AuthorizationCodeOAuthFlow';
import { ClientCredentialsOAuthFlow } from '../../../core/models/common/ClientCredentialsOAuthFlow';
import { Components } from '../../../core/models/common/Components';
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 { SecurityScheme } from '../../../core/models/common/SecurityScheme';
import { Server } from '../../../core/models/common/Server';
import { ServerVariable } from '../../../core/models/common/ServerVariable';
import { OasHeader } from '../../models/OasHeader';
import { OasPathItem } from '../../models/OasPathItem';
import { OasResponse } from '../../models/OasResponse';
import { Oas30Callback } from '../models/Oas30Callback';
import { Oas30CallbackDefinition } from '../models/Oas30CallbackDefinition';
import { Oas30CallbackPathItem } from '../models/Oas30CallbackPathItem';
import { Oas30Discriminator } from '../models/Oas30Discriminator';
import { Oas30Encoding } from '../models/Oas30Encoding';
import { Oas30ExampleDefinition } from '../models/Oas30ExampleDefinition';
import { Oas30HeaderDefinition } from '../models/Oas30HeaderDefinition';
import { Oas30Link } from '../models/Oas30Link';
import { Oas30LinkDefinition } from '../models/Oas30LinkDefinition';
import { Oas30LinkParameterExpression } from '../models/Oas30LinkParameterExpression';
import { Oas30LinkRequestBodyExpression } from '../models/Oas30LinkRequestBodyExpression';
import { Oas30LinkServer } from '../models/Oas30LinkServer';
import { Oas30MediaType } from '../models/Oas30MediaType';
import { Oas30RequestBody } from '../models/Oas30RequestBody';
import { Oas30RequestBodyDefinition } from '../models/Oas30RequestBodyDefinition';
import { Oas30Schema } from '../models/Oas30Schema';
import { OasTraverser } from '../../visitors/OasTraverser';
/**
 * Constructor.
 * @param {*} visitor
 * @class
 * @extends OasTraverser
 * @author eric.wittmann@gmail.com
 */
export declare class Oas30Traverser extends OasTraverser implements IOas30Visitor {
    constructor(visitor: IOas30Visitor);
    /**
     * @see io.apicurio.datamodels.openapi.visitors.OasTraverser#traverseDocument(io.apicurio.datamodels.core.models.Document)
     * @param {Document} node
     */
    traverseDocument(node: Document): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.Traverser#traverseParameter(io.apicurio.datamodels.core.models.common.Parameter)
     * @param {Parameter} node
     */
    traverseParameter(node: Parameter): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.OasTraverser#traverseResponse(io.apicurio.datamodels.openapi.models.OasResponse)
     * @param {OasResponse} node
     */
    traverseResponse(node: OasResponse): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.OasTraverser#traverseSchema(io.apicurio.datamodels.core.models.common.Schema)
     * @param {Schema} node
     */
    traverseSchema(node: Schema): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.OasTraverser#traverseOperation(io.apicurio.datamodels.core.models.common.Operation)
     * @param {Operation} node
     */
    traverseOperation(node: Operation): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.OasTraverser#traverseHeader(io.apicurio.datamodels.openapi.models.OasHeader)
     * @param {OasHeader} node
     */
    traverseHeader(node: OasHeader): 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.visitors.OasTraverser#traversePathItem(io.apicurio.datamodels.openapi.models.OasPathItem)
     * @param {OasPathItem} node
     */
    traversePathItem(node: OasPathItem): 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;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitPasswordOAuthFlow(io.apicurio.datamodels.core.models.common.PasswordOAuthFlow)
     * @param {PasswordOAuthFlow} node
     */
    visitPasswordOAuthFlow(node: PasswordOAuthFlow): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitImplicitOAuthFlow(io.apicurio.datamodels.core.models.common.ImplicitOAuthFlow)
     * @param {ImplicitOAuthFlow} node
     */
    visitImplicitOAuthFlow(node: ImplicitOAuthFlow): void;
    /**
     * @see io.apicurio.datamodels.openapi.v3.visitors.IOas30Visitor#visitOAuthFlows(io.apicurio.datamodels.core.models.common.OAuthFlows)
     * @param {OAuthFlows} node
     */
    visitOAuthFlows(node: OAuthFlows): 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.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.core.visitors.Traverser#traverseSecurityScheme(io.apicurio.datamodels.core.models.common.SecurityScheme)
     * @param {SecurityScheme} node
     */
    traverseSecurityScheme(node: SecurityScheme): 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;
}
import { IOas30Visitor } from './IOas30Visitor';
