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';
/**
 * Constructor.
 * @param {string} name
 * @class
 * @extends ExtensibleNode
 * @author eric.wittmann@gmail.com
 */
export declare class Oas30Link extends ExtensibleNode implements INamed, IReferenceNode {
    _name: string;
    $ref: string;
    operationRef: string;
    operationId: string;
    parameters: any;
    requestBody: Oas30LinkRequestBodyExpression;
    description: string;
    server: Oas30LinkServer;
    constructor(name: string);
    /**
     * @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;
    /**
     * Creates a link parameter expression.
     * @param {string} name
     * @param {string} value
     * @return {Oas30LinkParameterExpression}
     */
    createLinkParameterExpression(name: string, value: string): Oas30LinkParameterExpression;
    /**
     * Adds a link parameter expression.
     * @param {string} name
     * @param {Oas30LinkParameterExpression} expression
     */
    addLinkParameterExpression(name: string, expression: Oas30LinkParameterExpression): void;
    /**
     * Adds a link parameter expression.
     * @param {string} name
     * @param {string} expression
     * @return {Oas30LinkParameterExpression}
     */
    addLinkParameter(name: string, expression: string): Oas30LinkParameterExpression;
    /**
     * Gets a single link parameter expression by name.
     * @param {string} name
     * @return {Oas30LinkParameterExpression}
     */
    getLinkParameterExpression(name: string): Oas30LinkParameterExpression;
    /**
     * Removes a single link parameter expression and returns it.  This may return null or undefined if none found.
     * @param {string} name
     * @return {Oas30LinkParameterExpression}
     */
    removeLinkParameterExpression(name: string): Oas30LinkParameterExpression;
    /**
     * Gets a list of all link parameter expressions.
     * @return {Oas30LinkParameterExpression[]}
     */
    getLinkParameterExpressions(): Array<Oas30LinkParameterExpression>;
    /**
     * Creates a link request body expression.
     * @param {string} value
     * @return {Oas30LinkRequestBodyExpression}
     */
    createLinkRequestBodyExpression(value: string): Oas30LinkRequestBodyExpression;
    /**
     * Creates an OAS 3.0 Server object.
     * @return {Oas30LinkServer}
     */
    createServer(): Oas30LinkServer;
}
import { Oas30LinkServer } from './Oas30LinkServer';
import { Oas30LinkRequestBodyExpression } from './Oas30LinkRequestBodyExpression';
import { Oas30LinkParameterExpression } from './Oas30LinkParameterExpression';
