/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { ICodecFamily, ICodecOptions } from "../codec/index.js";
import { ChangeEncodingContext, ChangeFamily, ChangeRebaser, RevisionMetadataSource, RevisionTagCodec, TaggedChange } from "../core/index.js";
import { FieldBatchCodec, TreeCompressionStrategy } from "../feature-libraries/index.js";
import { SharedTreeChange } from "./sharedTreeChangeTypes.js";
import { SharedTreeEditBuilder } from "./sharedTreeEditBuilder.js";
/**
 * Implementation of {@link ChangeFamily} that combines edits to fields and schema changes.
 *
 * @sealed
 */
export declare class SharedTreeChangeFamily implements ChangeFamily<SharedTreeEditBuilder, SharedTreeChange>, ChangeRebaser<SharedTreeChange> {
    static readonly emptyChange: SharedTreeChange;
    readonly codecs: ICodecFamily<SharedTreeChange, ChangeEncodingContext>;
    private readonly modularChangeFamily;
    constructor(revisionTagCodec: RevisionTagCodec, fieldBatchCodec: FieldBatchCodec, codecOptions: ICodecOptions, chunkCompressionStrategy?: TreeCompressionStrategy);
    buildEditor(changeReceiver: (change: SharedTreeChange) => void): SharedTreeEditBuilder;
    compose(changes: TaggedChange<SharedTreeChange>[]): SharedTreeChange;
    invert(change: TaggedChange<SharedTreeChange>, isRollback: boolean): SharedTreeChange;
    rebase(change: SharedTreeChange, over: TaggedChange<SharedTreeChange>, revisionMetadata: RevisionMetadataSource): SharedTreeChange;
    get rebaser(): ChangeRebaser<SharedTreeChange>;
}
//# sourceMappingURL=sharedTreeChangeFamily.d.ts.map