/**
 * Marks a node that can be referenced (replaced by a reference),
 * e.g. <a href="http://spec.openapis.org/oas/v3.0.2#reference-object">OpenAPI 3 reference object</a> .
 *
 * Any class implementing this interface MUST have {@link io.apicurio.datamodels.core.models.Node} as it's supertype.
 * Conversely, any subclass of {@link io.apicurio.datamodels.core.models.Node} that can be referenced MUST implement this interface.
 *
 * @author eric.wittmann@gmail.com
 * @author Jakub Senko <jsenko@redhat.com>
 * @class
 */
export interface IReferenceNode {
    /**
     * Return the reference string, if this {@link io.apicurio.datamodels.core.models.Node} is a reference object.
     *
     * @return {string} null otherwise (this node is either empty or a proper node)
     */
    getReference(): string;
    setReference(reference: string): any;
}
