/**
 * 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<ArrayBuffer>;
    upperLimits: Float64Array<ArrayBuffer>;
    lowerChildren: Int32Array<ArrayBuffer>;
    upperChildren: Int32Array<ArrayBuffer>;
    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