import type { ITermDictionary } from '../dictionary/ITermDictionary'; import type { IRdfStoreOptions } from '../IRdfStoreOptions'; import type { QuadPatternTerms, QuadTerms, EncodedQuadTerms } from '../PatternTerm'; import type { IRdfStoreIndex } from './IRdfStoreIndex'; /** * An RDF store index that is implemented using nested records. */ export declare class RdfStoreIndexNestedRecord implements IRdfStoreIndex { protected readonly dictionary: ITermDictionary; protected readonly nestedRecords: NestedRecordActual; readonly features: { quotedTripleFiltering: boolean; }; constructor(options: IRdfStoreOptions); set(terms: EncodedQuadTerms, value: TV): boolean; remove(terms: EncodedQuadTerms): boolean; get(key: QuadTerms): TV | undefined; getEncoded(ids: EncodedQuadTerms): TV | undefined; /** * Check if all four pattern terms are plain (non-quoted) defined terms, * in which case the pattern can be resolved by a straight chain of record lookups. * @param terms The pattern terms. */ protected isExactPattern(terms: QuadPatternTerms): boolean; /** * Resolve a fully defined pattern by directly walking down the nested records. * @param ids The encoded pattern terms. * @return boolean If the quad is present in this index. */ protected hasExact(ids: EncodedQuadTerms): boolean; find(terms: QuadPatternTerms): IterableIterator; findEncoded(ids: EncodedQuadTerms, _terms: QuadPatternTerms): IterableIterator>; protected existsPath(depth: number, endDepth: number, map: NestedRecordActual, filterTerms?: (TE | undefined)[]): boolean; protected findTermsInner(depth: number, endDepth: number, map: NestedRecordActual, matchTerms: boolean[], partialResult: TE[], filterTerms?: (TE | undefined)[]): IterableIterator; findTerms(matchTerms: boolean[], filterTerms?: (TE | undefined)[]): IterableIterator; count(terms: QuadPatternTerms): number; protected countTermsInner(depth: number, endDepth: number, map: NestedRecordActual, matchTerms: boolean[], filterTerms?: (TE | undefined)[]): number; countTerms(matchTerms: boolean[], filterTerms?: (TE | undefined)[]): number; } export type NestedRecord = NestedRecordActual | true; export type NestedRecordActual = Record>>>;