import { DataModelWriter } from '../../core/io/DataModelWriter';
import { IDefinition } from '../../core/models/common/IDefinition';
import { IExample } from '../../core/models/common/IExample';
import { Operation } from '../../core/models/common/Operation';
import { Parameter } from '../../core/models/common/Parameter';
import { Schema } from '../../core/models/common/Schema';
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';
import { IOasVisitor } from '../visitors/IOasVisitor';
/**
 * Data model writer for OpenAPI data models (base class).
 * @author eric.wittmann@gmail.com
 * @class
 * @extends DataModelWriter
 */
export declare class OasDataModelWriter extends DataModelWriter implements IOasVisitor {
    /**
     * @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;
    writePathItem(json: any, node: OasPathItem): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponse(io.apicurio.datamodels.openapi.models.OasResponse)
     * @param {OasResponse} node
     */
    visitResponse(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.io.DataModelWriter#writeSchema(java.lang.Object, io.apicurio.datamodels.core.models.common.Schema)
     * @param {*} json
     * @param {Schema} node
     */
    writeSchema(json: any, node: Schema): void;
    /**
     * @see io.apicurio.datamodels.core.io.DataModelWriter#writeOperation(java.lang.Object, io.apicurio.datamodels.core.models.common.Operation)
     * @param {*} json
     * @param {Operation} node
     */
    writeOperation(json: any, node: Operation): void;
    /**
     * @see io.apicurio.datamodels.core.io.DataModelWriter#writeParameter(java.lang.Object, io.apicurio.datamodels.core.models.common.Parameter)
     * @param {*} json
     * @param {Parameter} node
     */
    writeParameter(json: any, node: Parameter): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitHeader(io.apicurio.datamodels.openapi.models.OasHeader)
     * @param {OasHeader} node
     */
    visitHeader(node: OasHeader): void;
    writeHeader(json: any, node: OasHeader): void;
    addHeaderToParent(parent: any, json: any, node: OasHeader): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponseDefinition(io.apicurio.datamodels.core.models.common.IDefinition)
     * @param {*} node
     */
    visitResponseDefinition(node: IDefinition): void;
    writeResponse(json: any, node: OasResponse): void;
    addResponseDefinitionToParent(parent: any, json: any, node: IDefinition): void;
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitExample(io.apicurio.datamodels.core.models.common.IExample)
     * @param {*} node
     */
    visitExample(node: IExample): void;
    constructor();
}
