import { MaybePromise } from '../util/promises'; import { URI } from '../util/uri'; import { Index } from './types'; export interface DocumentInfo { baseURI: URI; } export interface DocumentIndexConfiguration { cloned?: boolean; retrieve?: (uri: URI) => MaybePromise; } export declare abstract class DocumentIndex implements Index { readonly cloned: boolean; readonly retrieve: (uri: URI) => MaybePromise; constructor(configuration: DocumentIndexConfiguration); private documentsByURI; private infosByDocument; root(): any; isObjectIndexed(object: object): boolean; isURIIndexed(uri: URI): boolean; indexedObjectWithURI(uri: URI): any; infoForIndexedObject(value: any): DocumentInfo; find(uri: URI, options?: { followReferences: boolean; _uris?: Set; }): any; addDocument(document: any, baseURI: URI): any; addDocumentWithURI(uri: URI): MaybePromise; }