/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
/**
 * A map keyed on integers allowing reading and writing contiguous ranges of integer keys.
 */
export type RangeMap<T> = RangeEntry<T>[];
export interface RangeEntry<T> {
    start: number;
    length: number;
    value: T;
}
/**
 * The result of a query about a range of keys.
 *
 * @alpha
 */
export interface RangeQueryResult<T> {
    /**
     * The value of the first key in the query range.
     */
    value: T | undefined;
    /**
     * The length of the prefix of the query range which have the same value.
     * For example, if a RangeMap has the same value for keys 5, 6, and 7,
     * a query about the range [5, 10] would give a result with length 3.
     */
    length: number;
}
/**
 * See comments on `RangeQueryResult`.
 */
export declare function getFromRangeMap<T>(map: RangeMap<T>, start: number, length: number): RangeQueryResult<T>;
export declare function getFirstEntryFromRangeMap<T>(map: RangeMap<T>, start: number, length: number): RangeEntry<T> | undefined;
/**
 * Sets the keys from `start` to `start + length - 1` to `value`.
 */
export declare function setInRangeMap<T>(map: RangeMap<T>, start: number, length: number, value: T): void;
//# sourceMappingURL=rangeMap.d.ts.map