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 { PasswordOAuthFlow } from '../../../core/models/common/PasswordOAuthFlow';
import { Server } from '../../../core/models/common/Server';
import { ServerVariable } from '../../../core/models/common/ServerVariable';
import { OasDataModelReaderDispatcher } from '../../io/OasDataModelReaderDispatcher';
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 { IOas30Visitor } from '../visitors/IOas30Visitor';
/**
 * Constructor.
 * @param {*} json
 * @param {Oas30DataModelReader} reader
 * @class
 * @extends OasDataModelReaderDispatcher
 * @author eric.wittmann@gmail.com
 */
export declare class Oas30DataModelReaderDispatcher extends OasDataModelReaderDispatcher implements IOas30Visitor {
    constructor(json: any, reader: Oas30DataModelReader);
    /**
     * Casts the reader.
     * @return {Oas30DataModelReader}
     * @private
     */
    oas30Reader(): Oas30DataModelReader;
    /**
     * @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;
    /**
     * @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.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 { Oas30Schema } from '../models/Oas30Schema';
import { Oas30DataModelReader } from './Oas30DataModelReader';
