/** * A simple data structure for keeping track of unreserved space in one dimension. * Doesn't do any balancing, reservations must be done in random order. * Uses arrays to minimize object allocation and burden on GC. * * Note: this data structure appears to have some similarities to "Segment Tree". * TODO: Balancing ideas: https://cp-algorithms.com/data_structures/segment_tree.html */ export default class ReservationMap { /** * * @param {number} maxSize Max number of free slots that can be tracked * @param {number} [lowerLimit] * @param {number} [upperLimit] */ constructor(maxSize: number, lowerLimit?: number, upperLimit?: number); maxSize: number; lowerLimit: number; upperLimit: number; lowerLimits: Float64Array; upperLimits: Float64Array; lowerChildren: Int32Array; upperChildren: Int32Array; reset(): void; n: number; /** * * @param {number} lower * @param {number} upper * @param {number} i * @returns {number} Node index or -1 if not found */ _findSlot(lower: number, upper: number, i?: number): number; /** * * @param {number} lower * @param {number} upper * @returns {boolean} true if reservation succeeded */ reserve(lower: number, upper: number): boolean; } //# sourceMappingURL=reservationMap.d.ts.map