import { AaiChannelBindings } from '../models/AaiChannelBindings';
import { AaiChannelItem } from '../models/AaiChannelItem';
import { AaiCorrelationId } from '../models/AaiCorrelationId';
import { AaiHeaderItem } from '../models/AaiHeaderItem';
import { AaiMessage } from '../models/AaiMessage';
import { AaiMessageBase } from '../models/AaiMessageBase';
import { AaiMessageBindings } from '../models/AaiMessageBindings';
import { AaiMessageTrait } from '../models/AaiMessageTrait';
import { AaiOperationBase } from '../models/AaiOperationBase';
import { AaiOperationBindings } from '../models/AaiOperationBindings';
import { AaiOperationTrait } from '../models/AaiOperationTrait';
import { AaiServerBindings } from '../models/AaiServerBindings';
import { IAaiNodeFactory } from '../models/IAaiNodeFactory';
import { DataModelReader } from '../../core/io/DataModelReader';
import { Document } from '../../core/models/Document';
import { Components } from '../../core/models/common/Components';
import { OAuthFlows } from '../../core/models/common/OAuthFlows';
import { Operation } from '../../core/models/common/Operation';
import { SecurityScheme } from '../../core/models/common/SecurityScheme';
import { Server } from '../../core/models/common/Server';
import { ServerVariable } from '../../core/models/common/ServerVariable';
/**
 * A data model reader for the AsyncAPI data model.
 *
 * @author eric.wittmann@gmail.com
 * @author Jakub Senko <jsenko@redhat.com>
 * @param {*} nodeFactory
 * @class
 * @extends DataModelReader
 */
export declare abstract class AaiDataModelReader extends DataModelReader {
    nodeFactory: IAaiNodeFactory;
    constructor(nodeFactory: IAaiNodeFactory);
    /**
     * @see io.apicurio.datamodels.core.io.DataModelReader#readDocument(java.lang.Object, io.apicurio.datamodels.core.models.Document)
     * @param {*} json
     * @param {Document} node
     */
    readDocument(json: any, node: Document): void;
    readChannelItem(json: any, node: AaiChannelItem): void;
    /**
     * @see io.apicurio.datamodels.core.io.DataModelReader#readServer(java.lang.Object, io.apicurio.datamodels.core.models.common.Server)
     * @param {*} json
     * @param {Server} node
     */
    readServer(json: any, node: Server): void;
    /**
     * @see io.apicurio.datamodels.core.io.DataModelReader#readServerVariable(java.lang.Object, io.apicurio.datamodels.core.models.common.ServerVariable)
     * @param {*} json
     * @param {ServerVariable} node
     */
    readServerVariable(json: any, node: ServerVariable): void;
    /**
     *
     * @param {*} json
     * @param {Operation} node
     */
    readOperation(json: any, node: Operation): void;
    readMessage(json: any, node: AaiMessage): void;
    readMessageBase(json: any, node: AaiMessageBase): void;
    readCorrelationId(json: any, node: AaiCorrelationId): void;
    readHeaderItem(json: any, node: AaiHeaderItem): void;
    readMessageTrait(json: any, node: AaiMessageTrait): void;
    readOperationBase(json: any, node: AaiOperationBase): void;
    readOperationTrait(json: any, node: AaiOperationTrait): void;
    readComponents(json: any, node: Components): void;
    /**
     *
     * @param {*} json
     * @param {SecurityScheme} node
     */
    readSecurityScheme(json: any, node: SecurityScheme): void;
    /**
     *
     * @param {*} json
     * @param {OAuthFlows} node
     */
    readOAuthFlows(json: any, node: OAuthFlows): void;
    /**
     * Reads a channel bindings model.
     * @param {*} json
     * @param {AaiChannelBindings} node
     */
    readChannelBindings(json: any, node: AaiChannelBindings): void;
    /**
     * Reads a message bindings model.
     * @param {*} json
     * @param {AaiMessageBindings} node
     */
    readMessageBindings(json: any, node: AaiMessageBindings): void;
    /**
     * Reads a operation bindings model.
     * @param {*} json
     * @param {AaiOperationBindings} node
     */
    readOperationBindings(json: any, node: AaiOperationBindings): void;
    /**
     * Reads a server bindings model.
     * @param {*} json
     * @param {AaiServerBindings} node
     */
    readServerBindings(json: any, node: AaiServerBindings): void;
}
