import { Document } from '../../../core/models/Document';
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 { SecurityScheme } from '../../../core/models/common/SecurityScheme';
import { OasDataModelWriter } from '../../io/OasDataModelWriter';
import { OasHeader } from '../../models/OasHeader';
import { Oas20Definitions } from '../models/Oas20Definitions';
import { Oas20Headers } from '../models/Oas20Headers';
import { Oas20Items } from '../models/Oas20Items';
import { Oas20ParameterDefinitions } from '../models/Oas20ParameterDefinitions';
import { Oas20ResponseDefinitions } from '../models/Oas20ResponseDefinitions';
import { Oas20Scopes } from '../models/Oas20Scopes';
import { Oas20SecurityDefinitions } from '../models/Oas20SecurityDefinitions';
import { IOas20Visitor } from '../visitors/IOas20Visitor';
/**
 * @author eric.wittmann@gmail.com
 * @class
 * @extends OasDataModelWriter
 */
export declare class Oas20DataModelWriter extends OasDataModelWriter implements IOas20Visitor {
    /**
     * @see io.apicurio.datamodels.core.io.DataModelWriter#writeDocument(io.apicurio.datamodels.core.models.Document, java.lang.Object)
     * @param {Document} node
     * @param {*} json
     */
    writeDocument(node: Document, json: any): void;
    /**
     * @see io.apicurio.datamodels.openapi.v2.visitors.IOas20Visitor#visitItems(io.apicurio.datamodels.openapi.v2.models.Oas20Items)
     * @param {Oas20Items} node
     */
    visitItems(node: Oas20Items): void;
    /**
     * @see io.apicurio.datamodels.openapi.v2.visitors.IOas20Visitor#visitSecurityDefinitions(io.apicurio.datamodels.openapi.v2.models.Oas20SecurityDefinitions)
     * @param {Oas20SecurityDefinitions} node
     */
    visitSecurityDefinitions(node: Oas20SecurityDefinitions): void;
    /**
     * @see io.apicurio.datamodels.core.io.DataModelWriter#writeSecurityScheme(java.lang.Object, io.apicurio.datamodels.core.models.common.SecurityScheme)
     * @param {*} json
     * @param {SecurityScheme} node
     */
    writeSecurityScheme(json: any, node: SecurityScheme): void;
    /**
     * @see io.apicurio.datamodels.openapi.v2.visitors.IOas20Visitor#visitScopes(io.apicurio.datamodels.openapi.v2.models.Oas20Scopes)
     * @param {Oas20Scopes} node
     */
    visitScopes(node: Oas20Scopes): void;
    /**
     * @see io.apicurio.datamodels.openapi.v2.visitors.IOas20Visitor#visitDefinitions(io.apicurio.datamodels.openapi.v2.models.Oas20Definitions)
     * @param {Oas20Definitions} node
     */
    visitDefinitions(node: Oas20Definitions): void;
    /**
     * @see io.apicurio.datamodels.openapi.io.OasDataModelWriter#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.openapi.io.OasDataModelWriter#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.openapi.v2.visitors.IOas20Visitor#visitParameterDefinitions(io.apicurio.datamodels.openapi.v2.models.Oas20ParameterDefinitions)
     * @param {Oas20ParameterDefinitions} node
     */
    visitParameterDefinitions(node: Oas20ParameterDefinitions): 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#visitExample(io.apicurio.datamodels.core.models.common.IExample)
     * @param {*} node
     */
    visitExample(node: IExample): void;
    /**
     * @see io.apicurio.datamodels.openapi.v2.visitors.IOas20Visitor#visitHeaders(io.apicurio.datamodels.openapi.v2.models.Oas20Headers)
     * @param {Oas20Headers} node
     */
    visitHeaders(node: Oas20Headers): void;
    /**
     * @see io.apicurio.datamodels.openapi.io.OasDataModelWriter#writeHeader(java.lang.Object, io.apicurio.datamodels.openapi.models.OasHeader)
     * @param {*} json
     * @param {OasHeader} node
     */
    writeHeader(json: any, node: OasHeader): void;
    /**
     * @see io.apicurio.datamodels.openapi.v2.visitors.IOas20Visitor#visitResponseDefinitions(io.apicurio.datamodels.openapi.v2.models.Oas20ResponseDefinitions)
     * @param {Oas20ResponseDefinitions} node
     */
    visitResponseDefinitions(node: Oas20ResponseDefinitions): void;
    constructor();
}
