range-tree.d.ts 726 Bytes
import { RangeCov } from "./types";
export declare class RangeTree {
    start: number;
    end: number;
    delta: number;
    children: RangeTree[];
    constructor(start: number, end: number, delta: number, children: RangeTree[]);
    /**
     * @precodition `ranges` are well-formed and pre-order sorted
     */
    static fromSortedRanges(ranges: ReadonlyArray<RangeCov>): RangeTree | undefined;
    normalize(): void;
    /**
     * @precondition `tree.start < value && value < tree.end`
     * @return RangeTree Right part
     */
    split(value: number): RangeTree;
    /**
     * Get the range coverages corresponding to the tree.
     *
     * The ranges are pre-order sorted.
     */
    toRanges(): RangeCov[];
}