import { ChangeDesc, MapMode } from "@codemirror/next/state"; export declare abstract class RangeValue { eq(other: RangeValue): boolean; startSide: number; endSide: number; mapMode: MapMode; point: boolean; range(from: number, to?: number): Range; } export declare class Range { readonly from: number; readonly to: number; readonly value: T; } export interface RangeComparator { compareRange(from: number, to: number, activeA: T[], activeB: T[]): void; comparePoint(from: number, to: number, byA: T | null, byB: T | null): void; } export interface SpanIterator { span(from: number, to: number, active: readonly T[], openStart: number): void; point(from: number, to: number, value: T, active: readonly T[], openStart: number): void; } export interface RangeCursor { next: () => void; value: T | null; from: number; to: number; } declare type RangeSetUpdate = { add?: readonly Range[]; sort?: boolean; filter?: (from: number, to: number, value: T) => boolean; filterFrom?: number; filterTo?: number; }; export declare class RangeSet { update(updateSpec: RangeSetUpdate): RangeSet; map(changes: ChangeDesc): RangeSet; between(from: number, to: number, f: (from: number, to: number, value: T) => void | false): void; iter(from?: number): RangeCursor; static iter(sets: readonly RangeSet[], from?: number): RangeCursor; static compare(oldSets: readonly RangeSet[], newSets: readonly RangeSet[], textDiff: ChangeDesc, comparator: RangeComparator, minPointSize?: number): void; static spans(sets: readonly RangeSet[], from: number, to: number, iterator: SpanIterator, minPointSize?: number): number; static of(ranges: readonly Range[] | Range, sort?: boolean): RangeSet; static empty: RangeSet; } export declare class RangeSetBuilder { private chunks; private chunkPos; private chunkStart; private last; private lastFrom; private lastTo; private from; private to; private value; private maxPoint; private setMaxPoint; private nextLayer; private finishChunk; constructor(); add(from: number, to: number, value: T): void; finish(): RangeSet; } export {}; //# sourceMappingURL=rangeset.d.ts.map