UNPKG

@everwhen/temporal

Version:
39 lines (38 loc) 1.18 kB
import { type IntervalLike } from '../interval.ts'; import type { Point } from '../point.ts'; export declare const Color: { readonly RED: "RED"; readonly BLACK: "BLACK"; }; export type Color = (typeof Color)[keyof typeof Color]; export type WalkResult<Data extends { id: string; }, T extends Point> = { interval: IntervalLike<T>; data: Map<string, Data>; }; export declare class IntervalTree<Data extends { id: string; }, T extends Point> { #private; constructor(entries?: Iterable<[IntervalLike<T>, Data]>); insert(interval: IntervalLike<T>, item: Data): void; search<Output = WalkResult<Data, T>>(query: IntervalLike<T>, predicate: (interval: IntervalLike<T>) => boolean, mapper?: (args: { data: Map<string, Data>; interval: IntervalLike<T>; }) => Output): Output[]; /** * Returns number of items stored in the interval tree */ size(): number; /** * Returns true if tree is empty */ isEmpty(): boolean; /** * Clear tree */ clear(): void; [Symbol.iterator](): Iterator<WalkResult<Data, T>>; walk(query?: IntervalLike<T>): Generator<WalkResult<Data, T>>; }