import { IDefinition } from '../../core/models/common/IDefinition';
import { IExample } from '../../core/models/common/IExample';
import { IVisitor } from '../../core/visitors/IVisitor';
import { IOasPropertySchema } from '../models/IOasPropertySchema';
import { OasHeader } from '../models/OasHeader';
import { OasPathItem } from '../models/OasPathItem';
import { OasPaths } from '../models/OasPaths';
import { OasResponse } from '../models/OasResponse';
import { OasResponses } from '../models/OasResponses';
import { OasSchema } from '../models/OasSchema';
import { OasXML } from '../models/OasXML';
/**
 * The common/shared OpenAPI visitor interface.  All OpenAPI visitors must implement this.
 * @author eric.wittmann@gmail.com
 * @class
 */
export interface IOasVisitor extends IVisitor {
    visitPaths(node: OasPaths): any;
    visitPathItem(node: OasPathItem): any;
    visitResponse(node: OasResponse): any;
    visitResponses(node: OasResponses): any;
    visitXML(node: OasXML): any;
    visitAllOfSchema(node: OasSchema): any;
    visitItemsSchema(node: OasSchema): any;
    visitAdditionalPropertiesSchema(node: OasSchema): any;
    visitPropertySchema(node: IOasPropertySchema): any;
    visitHeader(node: OasHeader): any;
    visitResponseDefinition(node: IDefinition): any;
    visitExample(node: IExample): any;
}
