import { Document } from '../../core/models/Document';
import { IDefinition } from '../../core/models/common/IDefinition';
import { IExample } from '../../core/models/common/IExample';
import { Operation } from '../../core/models/common/Operation';
import { Schema } from '../../core/models/common/Schema';
import { IVisitor } from '../../core/visitors/IVisitor';
import { Traverser } from '../../core/visitors/Traverser';
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';
/**
 * Constructor.
 * @param {*} visitor
 * @class
 * @extends Traverser
 * @author eric.wittmann@gmail.com
 */
export declare class OasTraverser extends Traverser implements IOasVisitor {
    constructor(visitor: IVisitor);
    /**
     * @see io.apicurio.datamodels.core.visitors.Traverser#traverseDocument(io.apicurio.datamodels.core.models.Document)
     * @param {Document} node
     */
    traverseDocument(node: Document): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitPaths(io.apicurio.datamodels.openapi.models.OasPaths)
     * @param {OasPaths} node
     */
    visitPaths(node: OasPaths): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitPathItem(io.apicurio.datamodels.openapi.models.OasPathItem)
     * @param {OasPathItem} node
     */
    visitPathItem(node: OasPathItem): void;
    /**
     * Traverses a path item.
     * @param {OasPathItem} node
     */
    traversePathItem(node: OasPathItem): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponse(io.apicurio.datamodels.openapi.models.OasResponse)
     * @param {OasResponse} node
     */
    visitResponse(node: OasResponse): void;
    traverseResponse(node: OasResponse): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponses(io.apicurio.datamodels.openapi.models.OasResponses)
     * @param {OasResponses} node
     */
    visitResponses(node: OasResponses): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitXML(io.apicurio.datamodels.openapi.models.OasXML)
     * @param {OasXML} node
     */
    visitXML(node: OasXML): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitAllOfSchema(io.apicurio.datamodels.openapi.models.OasSchema)
     * @param {OasSchema} node
     */
    visitAllOfSchema(node: OasSchema): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitItemsSchema(io.apicurio.datamodels.openapi.models.OasSchema)
     * @param {OasSchema} node
     */
    visitItemsSchema(node: OasSchema): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitAdditionalPropertiesSchema(io.apicurio.datamodels.openapi.models.OasSchema)
     * @param {OasSchema} node
     */
    visitAdditionalPropertiesSchema(node: OasSchema): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitPropertySchema(io.apicurio.datamodels.openapi.models.IOasPropertySchema)
     * @param {*} node
     */
    visitPropertySchema(node: IOasPropertySchema): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.Traverser#traverseSchema(io.apicurio.datamodels.core.models.common.Schema)
     * @param {Schema} node
     */
    traverseSchema(node: Schema): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitHeader(io.apicurio.datamodels.openapi.models.OasHeader)
     * @param {OasHeader} node
     */
    visitHeader(node: OasHeader): void;
    traverseHeader(node: OasHeader): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponseDefinition(io.apicurio.datamodels.core.models.common.IDefinition)
     * @param {*} node
     */
    visitResponseDefinition(node: IDefinition): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.Traverser#traverseOperation(io.apicurio.datamodels.core.models.common.Operation)
     * @param {Operation} node
     */
    traverseOperation(node: Operation): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitExample(io.apicurio.datamodels.core.models.common.IExample)
     * @param {*} node
     */
    visitExample(node: IExample): void;
}
import { IOasVisitor } from './IOasVisitor';
