import { INamed } from '../../core/models/common/INamed';
import { Server } from '../../core/models/common/Server';
import { IVisitor } from '../../core/visitors/IVisitor';
/**
 * Constructor.
 * @param {Node} parent
 * @param {string} name
 * @class
 * @extends Server
 * @author eric.wittmann@gmail.com
 */
export declare abstract class AaiServer extends Server implements INamed {
    _name: string;
    protocol: string;
    protocolVersion: string;
    security: Array<AaiSecurityRequirement>;
    bindings: AaiServerBindings;
    constructor(parent?: any, name?: any);
    /**
     * @see io.apicurio.datamodels.core.models.Node#accept(IVisitor)
     * @param {*} visitor
     */
    accept(visitor: IVisitor): void;
    /**
     * Creates a security requirement child node.
     * @return {AaiSecurityRequirement}
     */
    abstract createSecurityRequirement(): AaiSecurityRequirement;
    /**
     * @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;
    /**
     * Adds a security requirement child.
     *
     * @param {AaiSecurityRequirement} securityRequirement
     * @return {AaiSecurityRequirement}
     */
    addSecurityRequirement(securityRequirement: AaiSecurityRequirement): AaiSecurityRequirement;
}
import { AaiServerBindings } from './AaiServerBindings';
import { AaiSecurityRequirement } from './AaiSecurityRequirement';
