import { AaiChannelBindings } from '../models/AaiChannelBindings';
import { AaiChannelBindingsDefinition } from '../models/AaiChannelBindingsDefinition';
import { AaiChannelItem } from '../models/AaiChannelItem';
import { AaiCorrelationId } from '../models/AaiCorrelationId';
import { AaiHeaderItem } from '../models/AaiHeaderItem';
import { AaiMessage } from '../models/AaiMessage';
import { AaiMessageBindings } from '../models/AaiMessageBindings';
import { AaiMessageBindingsDefinition } from '../models/AaiMessageBindingsDefinition';
import { AaiMessageTrait } from '../models/AaiMessageTrait';
import { AaiMessageTraitDefinition } from '../models/AaiMessageTraitDefinition';
import { AaiOperationBindings } from '../models/AaiOperationBindings';
import { AaiOperationBindingsDefinition } from '../models/AaiOperationBindingsDefinition';
import { AaiOperationTrait } from '../models/AaiOperationTrait';
import { AaiOperationTraitDefinition } from '../models/AaiOperationTraitDefinition';
import { AaiParameter } from '../models/AaiParameter';
import { AaiServerBindings } from '../models/AaiServerBindings';
import { AaiServerBindingsDefinition } from '../models/AaiServerBindingsDefinition';
import { AuthorizationCodeOAuthFlow } from '../../core/models/common/AuthorizationCodeOAuthFlow';
import { ClientCredentialsOAuthFlow } from '../../core/models/common/ClientCredentialsOAuthFlow';
import { Components } from '../../core/models/common/Components';
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 { IVisitor } from '../../core/visitors/IVisitor';
/**
 * A node visitor for the AsyncAPI data model.
 *
 * @author eric.wittmann@gmail.com
 * @author Jakub Senko <jsenko@redhat.com>
 * @class
 */
export interface IAaiVisitor extends IVisitor {
    visitAuthorizationCodeOAuthFlow(node: AuthorizationCodeOAuthFlow): any;
    visitChannelItem(node: AaiChannelItem): any;
    visitClientCredentialsOAuthFlow(node: ClientCredentialsOAuthFlow): any;
    visitComponents(node: Components): any;
    visitCorrelationId(node: AaiCorrelationId): any;
    visitHeaderItem(node: AaiHeaderItem): any;
    visitImplicitOAuthFlow(node: ImplicitOAuthFlow): any;
    visitMessage(node: AaiMessage): any;
    visitMessageTrait(node: AaiMessageTrait): any;
    visitMessageTraitDefinition(node: AaiMessageTraitDefinition): any;
    visitOAuthFlows(node: OAuthFlows): any;
    visitOperationTrait(node: AaiOperationTrait): any;
    visitOperationTraitDefinition(node: AaiOperationTraitDefinition): any;
    visitPasswordOAuthFlow(node: PasswordOAuthFlow): any;
    visitServer(node: Server): any;
    visitServerVariable(node: ServerVariable): any;
    visitAaiParameter(node: AaiParameter): any;
    visitServerBindings(node: AaiServerBindings): any;
    visitServerBindingsDefinition(node: AaiServerBindingsDefinition): any;
    visitOperationBindings(node: AaiOperationBindings): any;
    visitOperationBindingsDefinition(node: AaiOperationBindingsDefinition): any;
    visitMessageBindings(node: AaiMessageBindings): any;
    visitMessageBindingsDefinition(node: AaiMessageBindingsDefinition): any;
    visitChannelBindings(node: AaiChannelBindings): any;
    visitChannelBindingsDefinition(node: AaiChannelBindingsDefinition): any;
}
