import type { ITermDictionary } from '../dictionary/ITermDictionary'; import type { IRdfStoreOptions } from '../IRdfStoreOptions'; import type { EncodedQuadTerms, QuadPatternTerms, QuadTerms } from '../PatternTerm'; import type { IRdfStoreIndex } from './IRdfStoreIndex'; /** * An RDF store index that is implemented using nested Maps. */ export declare class RdfStoreIndexNestedMap implements IRdfStoreIndex { protected readonly dictionary: ITermDictionary; protected readonly nestedMap: NestedMapActual; 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 map lookups. * @param terms The pattern terms. */ protected isExactPattern(terms: QuadPatternTerms): boolean; /** * Resolve a fully defined pattern by directly walking down the nested maps. * @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: NestedMapActual, filterTerms?: (TE | undefined)[]): boolean; protected findTermsInner(depth: number, endDepth: number, map: NestedMapActual, 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: NestedMapActual, matchTerms: boolean[], filterTerms?: (TE | undefined)[]): number; countTerms(matchTerms: boolean[], filterTerms?: (TE | undefined)[]): number; } export type NestedMap = NestedMapActual | TV; export type NestedMapActual = Map>;