import { ExtensibleNode } from '../ExtensibleNode';
import { IReferenceNode } from '../IReferenceNode';
import { IVisitor } from '../../visitors/IVisitor';
/**
 * Constructor.
 * @param {string} name
 * @class
 * @extends ExtensibleNode
 * @author eric.wittmann@gmail.com
 */
export declare abstract class Parameter extends ExtensibleNode implements IReferenceNode, INamed {
    $ref: string;
    name: string;
    description: string;
    schema: Schema;
    constructor(name?: any);
    /**
     * @see io.apicurio.datamodels.core.models.Node#accept(io.apicurio.datamodels.core.visitors.IVisitor)
     * @param {*} visitor
     */
    accept(visitor: IVisitor): void;
    /**
     *
     * @return {string}
     */
    getReference(): string;
    /**
     *
     * @param {string} reference
     */
    setReference(reference: string): void;
    abstract createSchema(): Schema;
    /**
     * @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;
}
import { Schema } from './Schema';
import { INamed } from './INamed';
