/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { LocalReferencePosition } from "./localReference";
import { ISegment } from "./mergeTreeNodes";
export declare type Trackable = ISegment | LocalReferencePosition;
export declare class TrackingGroup {
    private readonly trackedSet;
    constructor();
    /**
     * @deprecated - use tracked instead.
     * For references positions this will return the underlying segment,
     * which may not match the intention
     */
    get segments(): readonly ISegment[];
    get tracked(): readonly Trackable[];
    get size(): number;
    has(trackable: Trackable): boolean;
    link(trackable: Trackable): void;
    unlink(trackable: Trackable): boolean;
}
export declare class TrackingGroupCollection {
    private readonly trackable;
    readonly trackingGroups: Set<TrackingGroup>;
    constructor(trackable: Trackable);
    link(trackingGroup: TrackingGroup): void;
    unlink(trackingGroup: TrackingGroup): boolean;
    copyTo(trackable: Trackable): void;
    get empty(): boolean;
    matches(trackingCollection: TrackingGroupCollection): boolean;
}
//# sourceMappingURL=mergeTreeTracking.d.ts.map