import { BlankNode, Dataset, NamedNode } from "@rdfjs/types"; import { ArrayProxyTarget } from "./arrayProxy/createArrayHandler"; import { SubjectProxy } from "./subjectProxy/SubjectProxy"; import { ArrayProxy } from "./arrayProxy/ArrayProxy"; import { GraphType, QuadMatch } from "./types"; import { ContextUtil } from "./ContextUtil"; import { LanguageOrdering } from "./language/languageTypes"; export interface ProxyContextOptions { dataset: Dataset; contextUtil: ContextUtil; writeGraphs: GraphType[]; languageOrdering: LanguageOrdering; prefilledArrayTargets?: ArrayProxyTarget[]; state?: Record; } /** * This file keeps track of the target objects used in the proxies. * The reason is so that JSON.stringify does not recurse inifinitely * when it encounters a circular object. */ export declare class ProxyContext { private subjectMap; private arrayMap; readonly dataset: Dataset; readonly contextUtil: ContextUtil; readonly writeGraphs: GraphType[]; readonly languageOrdering: LanguageOrdering; state: Record; constructor(options: ProxyContextOptions); createSubjectProxy(node: NamedNode | BlankNode): SubjectProxy; protected createSubjectHandler(): ProxyHandler; private getArrayKey; createArrayProxy(quadMatch: QuadMatch, isSubjectOriented?: boolean, initialTarget?: ArrayProxyTarget, isLangStringArray?: boolean): ArrayProxy; protected createArrayHandler(): ProxyHandler; duplicate(alternativeOptions: Partial): ProxyContext; }