import { Node } from '../models/Node';
/**
 * @author eric.wittmann@gmail.com
 * @class
 */
export declare class ReferenceUtil {
    static resolveNodeRef$io_apicurio_datamodels_core_models_Node(node: Node): Node;
    static resolveNodeRef$io_apicurio_datamodels_core_models_Node$io_apicurio_datamodels_core_util_ResolverOptions(node: Node, options: ResolverOptions): Node;
    /**
     * Resolves a node reference.  If there is no "$ref" property on the node, then the node itself is
     * returned.  If there is a "$ref" property, then it is resolved (if possible) to another node.
     * @param {Node} node
     * @param {ResolverOptions} options
     * @return {Node}
     */
    static resolveNodeRef(node?: any, options?: any): any;
    static resolveRef$java_lang_String$io_apicurio_datamodels_core_models_Node($ref: string, from: Node): Node;
    static resolveRef$java_lang_String$io_apicurio_datamodels_core_models_Node$io_apicurio_datamodels_core_util_ResolverOptions($ref: string, from: Node, options: ResolverOptions): Node;
    /**
     * Resolves a reference from a relative position in the data model.
     * @param $ref
     * @param {Node} from
     * @param {ResolverOptions} options
     * @param {string} $ref
     * @return {Node}
     */
    static resolveRef($ref?: any, from?: any, options?: any): any;
    /**
     * Returns true only if the given reference can be resolved relative to the given document.  Examples
     * of $ref values include:
     *
     * #/definitions/ExampleDefinition
     * #/parameters/fooId
     * #/responses/NotFoundResponse
     *
     * @param $ref
     * @param {Node} from
     * @param {string} $ref
     * @return {boolean}
     */
    static canResolveRef($ref: string, from: Node): boolean;
    /**
     * Check if the property value exists (is not undefined and is not null).
     * @param {*} value
     * @return {boolean}
     */
    static hasValue(value: any): boolean;
    /**
     * Resolves the given $ref fragment (e.g. /components/schemas/MySchema) against the
     * given JS Object context.  This operates against raw javascript, not against a
     * data model.
     * @param {*} contextNode
     * @param {string} fragment
     * @return {*}
     */
    static resolveFragmentFromJS(contextNode: any, fragment: string): any;
}
import { ResolverOptions } from './ResolverOptions';
