import { ExtensibleNode } from '../ExtensibleNode';
import { IVisitor } from '../../visitors/IVisitor';
/**
 * Constructor.
 * @param {string} name
 * @class
 * @extends ExtensibleNode
 * @author eric.wittmann@gmail.com
 */
export declare abstract class Tag extends ExtensibleNode implements IExternalDocumentationParent, INamed {
    name: string;
    description: string;
    externalDocs: ExternalDocumentation;
    constructor(name?: any);
    /**
     * @see io.apicurio.datamodels.core.models.Node#accept(io.apicurio.datamodels.core.visitors.IVisitor)
     * @param {*} visitor
     */
    accept(visitor: IVisitor): void;
    /**
     * Creates an External Documentation node.
     * @return {ExternalDocumentation}
     */
    abstract createExternalDocumentation(): ExternalDocumentation;
    setExternalDocumentation$io_apicurio_datamodels_core_models_common_ExternalDocumentation(externalDocs: ExternalDocumentation): void;
    setExternalDocumentation$java_lang_String$java_lang_String(description: string, url: string): ExternalDocumentation;
    /**
     * Sets the external documentation information.
     * @param {string} description
     * @param {string} url
     * @return {ExternalDocumentation}
     */
    setExternalDocumentation(description?: any, url?: any): any;
    /**
     * @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 { ExternalDocumentation } from './ExternalDocumentation';
import { INamed } from './INamed';
import { IExternalDocumentationParent } from './IExternalDocumentationParent';
