import { Document } from '../../../core/models/Document'; import { Node } from '../../../core/models/Node'; import { IReferenceResolver } from '../../../core/util/IReferenceResolver'; /** * Setup the dereferencer execution. * * @param {Document} source original {@link Document} * @param {*} resolver provide a custom resolver, otherwise the common {@link io.apicurio.datamodels.core.util.ReferenceResolverChain} * is used. * @param {boolean} strict If true, and there are any references that cannot be resolved, raise an exception. * Defaults to false. * @class * @author Jakub Senko */ export declare class Dereferencer { source: Document; resolver: IReferenceResolver; strict: boolean; unresolvable: Array; constructor(source?: any, resolver?: any, strict?: any); /** * Execute the algorithm. * * @return {Document} dereferenced clone of the source document. * @throws java.lang.RuntimeException if strict and some references could not be dereferenced */ dereference(): Document; getResolver(): IReferenceResolver; isStrict(): boolean; /** * After {@link #dereference()} is executed and strict is false, * * @return {string[]} a possibly non-empty set of unresolved references */ getUnresolvableReferences(): Array; } export declare namespace Dereferencer { /** * State for each recursive step * @class */ class Context { __parent: any; parentRef: string; node: Node; constructor(__parent: any, parentRef: string, node: Node); /** * * @param {*} o * @return {boolean} */ equals(o: any): boolean; /** * * @return {number} */ hashCode(): number; } }