import { ExtensibleNode } from '../../core/models/ExtensibleNode';
import { IReferenceNode } from '../../core/models/IReferenceNode';
import { INamed } from '../../core/models/common/INamed';
import { IVisitor } from '../../core/visitors/IVisitor';
/**
 * @author Jakub Senko <jsenko@redhat.com>
 * @param {Node} parent
 * @param {string} name
 * @class
 * @extends ExtensibleNode
 */
export declare abstract class AaiChannelItem extends ExtensibleNode implements IReferenceNode, INamed {
    _name: string;
    $ref: string;
    description: string;
    subscribe: AaiOperation;
    publish: AaiOperation;
    parameters: any;
    bindings: AaiChannelBindings;
    constructor(parent?: any, name?: any);
    /**
     * @see io.apicurio.datamodels.core.models.Node#accept(io.apicurio.datamodels.core.visitors.IVisitor)
     * @param {*} visitor
     */
    accept(visitor: IVisitor): void;
    /**
     * @see io.apicurio.datamodels.core.models.common.INamed#getName()
     * @return {string}
     */
    getName(): string;
    /**
     * @see io.apicurio.datamodels.core.models.common.INamed#rename(java.lang.String)
     * @param {string} newName
     */
    rename(newName: string): void;
    /**
     *
     * @return {string}
     */
    getReference(): string;
    /**
     *
     * @param {string} reference
     */
    setReference(reference: string): void;
    /**
     * Adds a parameter.
     * @param {string} paramName
     * @param {AaiParameter} param
     */
    addParameter(paramName: string, param: AaiParameter): void;
    getParameterlist(): Array<AaiParameter>;
}
import { AaiChannelBindings } from './AaiChannelBindings';
import { AaiParameter } from './AaiParameter';
import { AaiOperation } from './AaiOperation';
