@everwhen/temporal
Version:
_description_
39 lines (38 loc) • 1.18 kB
TypeScript
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>>;
}