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';
import { IVisitor } from '../visitors/IVisitor';
/**
 * Constructor.
 * @param {DataModelReader} reader
 * @param {*} json
 * @class
 * @author eric.wittmann@gmail.com
 */
export declare class DataModelReaderDispatcher implements IVisitor {
    reader: DataModelReader;
    json: any;
    constructor(json: any, reader: DataModelReader);
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitDocument(io.apicurio.datamodels.core.models.Document)
     * @param {Document} node
     */
    visitDocument(node: Document): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitInfo(io.apicurio.datamodels.core.models.common.Info)
     * @param {Info} node
     */
    visitInfo(node: Info): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitContact(io.apicurio.datamodels.core.models.common.Contact)
     * @param {Contact} node
     */
    visitContact(node: Contact): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitLicense(io.apicurio.datamodels.core.models.common.License)
     * @param {License} node
     */
    visitLicense(node: License): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitTag(io.apicurio.datamodels.core.models.common.Tag)
     * @param {Tag} node
     */
    visitTag(node: Tag): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitExternalDocumentation(io.apicurio.datamodels.core.models.common.ExternalDocumentation)
     * @param {ExternalDocumentation} node
     */
    visitExternalDocumentation(node: ExternalDocumentation): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitExtension(io.apicurio.datamodels.core.models.Extension)
     * @param {Extension} node
     */
    visitExtension(node: Extension): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSecurityRequirement(io.apicurio.datamodels.core.models.common.SecurityRequirement)
     * @param {SecurityRequirement} node
     */
    visitSecurityRequirement(node: SecurityRequirement): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitValidationProblem(io.apicurio.datamodels.core.models.ValidationProblem)
     * @param {ValidationProblem} problem
     */
    visitValidationProblem(problem: ValidationProblem): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSchema(io.apicurio.datamodels.core.models.common.Schema)
     * @param {Schema} node
     */
    visitSchema(node: Schema): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSchemaDefinition(io.apicurio.datamodels.core.models.common.IDefinition)
     * @param {*} node
     */
    visitSchemaDefinition(node: IDefinition): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitParameter(io.apicurio.datamodels.core.models.common.Parameter)
     * @param {Parameter} node
     */
    visitParameter(node: Parameter): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitParameterDefinition(io.apicurio.datamodels.core.models.common.IDefinition)
     * @param {*} node
     */
    visitParameterDefinition(node: IDefinition): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitOperation(io.apicurio.datamodels.core.models.common.Operation)
     * @param {Operation} node
     */
    visitOperation(node: Operation): void;
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSecurityScheme(io.apicurio.datamodels.core.models.common.SecurityScheme)
     * @param {SecurityScheme} node
     */
    visitSecurityScheme(node: SecurityScheme): void;
}
import { DataModelReader } from './DataModelReader';
