import { Document } from '../models/Document';
import { Extension } from '../models/Extension';
import { ValidationProblem } from '../models/ValidationProblem';
import { Contact } from '../models/common/Contact';
import { ExternalDocumentation } from '../models/common/ExternalDocumentation';
import { IDefinition } from '../models/common/IDefinition';
import { Info } from '../models/common/Info';
import { License } from '../models/common/License';
import { Operation } from '../models/common/Operation';
import { Parameter } from '../models/common/Parameter';
import { Schema } from '../models/common/Schema';
import { SecurityRequirement } from '../models/common/SecurityRequirement';
import { SecurityScheme } from '../models/common/SecurityScheme';
import { Tag } from '../models/common/Tag';
/**
 * A basic visitor interface used to visit data model instances.
 * @author eric.wittmann@gmail.com
 * @class
 */
export interface IVisitor {
    visitContact(node: Contact): any;
    visitDocument(node: Document): any;
    visitExtension(node: Extension): any;
    visitExternalDocumentation(node: ExternalDocumentation): any;
    visitInfo(node: Info): any;
    visitLicense(node: License): any;
    visitOperation(node: Operation): any;
    visitParameterDefinition(node: IDefinition): any;
    visitParameter(node: Parameter): any;
    visitSchemaDefinition(node: IDefinition): any;
    visitSchema(node: Schema): any;
    visitSecurityRequirement(node: SecurityRequirement): any;
    visitSecurityScheme(node: SecurityScheme): any;
    visitTag(node: Tag): any;
    visitValidationProblem(problem: ValidationProblem): any;
}
