/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type DetachedFieldIndex, type IEditableForest, type RevisionTag, type TreeStoredSchemaRepository } from "../core/index.js";
import { disposeSymbol } from "../util/index.js";
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
import type { ChangeEnricherMutableCheckout, ChangeEnricherReadonlyCheckout } from "../shared-tree-core/index.js";
import type { IIdCompressor } from "@fluidframework/id-compressor";
export declare class SharedTreeReadonlyChangeEnricher implements ChangeEnricherReadonlyCheckout<SharedTreeChange> {
    protected readonly forest: IEditableForest;
    private readonly schema;
    protected readonly removedRoots: DetachedFieldIndex;
    private readonly idCompressor?;
    /**
     * @param forest - The state based on which to enrich changes.
     * Exclusively owned by the constructed instance.
     * @param schema - The schema that corresponds to the forest.
     * @param removedRoots - The set of removed roots based on which to enrich changes.
     * Exclusively owned by the constructed instance.
     */
    constructor(forest: IEditableForest, schema: TreeStoredSchemaRepository, removedRoots: DetachedFieldIndex, idCompressor?: IIdCompressor | undefined);
    fork(): ChangeEnricherMutableCheckout<SharedTreeChange>;
    updateChangeEnrichments(change: SharedTreeChange): SharedTreeChange;
    private readonly getDetachedRoot;
}
export declare class SharedTreeMutableChangeEnricher extends SharedTreeReadonlyChangeEnricher implements ChangeEnricherMutableCheckout<SharedTreeChange> {
    applyTipChange(change: SharedTreeChange, revision?: RevisionTag): void;
    [disposeSymbol](): void;
}
//# sourceMappingURL=sharedTreeChangeEnricher.d.ts.map