import { ExtensibleNode } from '../ExtensibleNode';
/**
 * @author eric.wittmann@gmail.com
 * @class
 * @extends ExtensibleNode
 */
export declare abstract class Server extends ExtensibleNode {
    url: string;
    description: string;
    variables: any;
    /**
     * Creates a server variable.
     * @param {string} name
     * @return {ServerVariable}
     */
    abstract createServerVariable(name: string): ServerVariable;
    /**
     * Adds a server variable.
     * @param {string} name
     * @param {ServerVariable} serverVariable
     */
    addServerVariable(name: string, serverVariable: ServerVariable): void;
    /**
     * Gets a single server variable by name.
     * @param {string} name
     * @return {ServerVariable}
     */
    getServerVariable(name: string): ServerVariable;
    /**
     * Removes a single server variable and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {ServerVariable}
     */
    removeServerVariable(name: string): ServerVariable;
    /**
     * Gets a list of all server variables.
     * @return {ServerVariable[]}
     */
    getServerVariables(): Array<ServerVariable>;
    constructor();
}
import { ServerVariable } from './ServerVariable';
