/*! * Copyright (c) Microsoft Corporation and contributors. All rights reserved. * Licensed under the MIT License. */ import type { SequencePlace } from "@fluidframework/merge-tree/internal"; import type { SequenceInterval } from "../intervals/index.js"; import type { ISharedSegmentSequence } from "../sequence.js"; import type { ISharedString } from "../sharedString.js"; import type { SequenceIntervalIndex } from "./intervalIndex.js"; /** * @legacy @beta */ export interface ISequenceOverlappingIntervalsIndex extends SequenceIntervalIndex { /** * @returns an array of all intervals contained in this collection that overlap the range * `[start end]`. */ findOverlappingIntervals(start: SequencePlace, end: SequencePlace): SequenceInterval[]; /** * Gathers the interval results based on specified parameters. */ gatherIterationResults(results: SequenceInterval[], iteratesForward: boolean, start?: SequencePlace, end?: SequencePlace): void; } export declare class OverlappingIntervalsIndex implements ISequenceOverlappingIntervalsIndex { private readonly sequence; private readonly intervalSet; constructor(sequence: ISharedSegmentSequence); gatherIterationResults(results: SequenceInterval[], iteratesForward: boolean, start?: SequencePlace, end?: SequencePlace): void; findOverlappingIntervals(start: SequencePlace, end: SequencePlace): SequenceInterval[]; remove(interval: SequenceInterval): void; add(interval: SequenceInterval): void; } /** * Creates an overlapping intervals index for the provided SharedString. * * @legacy @beta */ export declare function createOverlappingIntervalsIndex(sharedString: ISharedString): ISequenceOverlappingIntervalsIndex; //# sourceMappingURL=overlappingIntervalsIndex.d.ts.map