import { Document } from '../core/models/Document';
import { Extension } from '../core/models/Extension';
import { Node } from '../core/models/Node';
import { ValidationProblem } from '../core/models/ValidationProblem';
import { Contact } from '../core/models/common/Contact';
import { ExternalDocumentation } from '../core/models/common/ExternalDocumentation';
import { Info } from '../core/models/common/Info';
import { License } from '../core/models/common/License';
import { Tag } from '../core/models/common/Tag';
import { IVisitor } from '../core/visitors/IVisitor';
/**
 * @author eric.wittmann@gmail.com
 * @class
 */
export declare abstract class ModelClonerVisitor implements IVisitor {
    __clone: Node;
    getClone(): Node;
    /**
     * @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#visitDocument(io.apicurio.datamodels.core.models.Document)
     * @param {Document} node
     */
    visitDocument(node: Document): 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#visitExternalDocumentation(io.apicurio.datamodels.core.models.common.ExternalDocumentation)
     * @param {ExternalDocumentation} node
     */
    visitExternalDocumentation(node: ExternalDocumentation): 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#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#visitValidationProblem(io.apicurio.datamodels.core.models.ValidationProblem)
     * @param {ValidationProblem} problem
     */
    visitValidationProblem(problem: ValidationProblem): void;
    abstract visitParameterDefinition(node?: any): any;
    abstract visitSecurityScheme(node?: any): any;
    abstract visitOperation(node?: any): any;
    abstract visitParameter(node?: any): any;
    abstract visitSchemaDefinition(node?: any): any;
    abstract visitSchema(node?: any): any;
    abstract visitSecurityRequirement(node?: any): any;
    constructor();
}
