import { DataFactory, DatasetCore, Quad, Term } from "@rdfjs/types"; export interface PointerLike { term: Term; dataset: D; } export interface CallbackParams { quad: Quad; dataset: D; level: number; } export interface TraversePredicate { (arg: CallbackParams): boolean; } export interface ForEachCallback { (arg: CallbackParams): void; } export interface ReduceCallback { (context: CallbackParams, result: R): R; } export interface Options { backward: boolean; factory: DataFactory; forward: boolean; } export default class Traverser { constructor(filter: TraversePredicate, options?: Options); forEach(pointer: PointerLike, callback: ForEachCallback): void; match(pointer: PointerLike): D; reduce(pointer: PointerLike, callback: ReduceCallback): R | undefined; reduce(pointer: PointerLike, callback: ReduceCallback, initialValue: R): R; }