import { type JSONPointer } from '@criteria/json-pointer'; import { DocumentIndex } from '../schema-index/DocumentIndex'; import { JSONReferenceContentIndex } from '../schema-index/JSONReferenceContentIndex'; import { SchemaContentIndex } from '../schema-index/SchemaContentIndex'; import { ReferenceInfo } from '../schema-index/types'; import { MaybePromise } from '../util/promises'; import { URI } from '../util/uri'; export interface Metadata { metaSchemaID: URI; } export interface SchemaIndexConfiguration { defaultMetaSchemaID: URI; cloned?: boolean; retrieve?: (uri: URI) => MaybePromise; } export declare class SchemaIndex extends DocumentIndex { readonly schemaContentIndex: SchemaContentIndex; readonly jsonReferenceContentIndex: JSONReferenceContentIndex; readonly defaultMetaSchemaID: string; constructor(configuration: SchemaIndexConfiguration); readonly references: Map>; isObjectIndexed(object: object): boolean; isURIIndexed(uri: string): boolean; indexedObjectWithURI(uri: URI): any; infoForIndexedObject(object: any): any; dereferenceReference(uri: URI, reference: { $ref: string; }, schemaPath: JSONPointer[]): any; dereferenceDynamicReference(uri: URI, dynamicReference: { $dynamicRef: string; }, schemaPath: JSONPointer[]): any; addRootSchema(rootSchema: object, baseURI: URI): MaybePromise; addSchemas(rootSchema: any, baseURI: URI, metadata: Metadata): MaybePromise; addJSONReferences(rootObject: any, baseURI: URI, metadata: Metadata): MaybePromise; }