/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { TaggedChange } from "../../core";
import { SequenceChangeset } from "./sequenceChangeset";
/**
 * Rebases `change` over `base` assuming they both apply to the same initial state.
 * @param change - The changeset to rebase.
 * @param base - The changeset to rebase over.
 * @returns A changeset that performs the changes in `change` but does so assuming `base` has been applied first.
 *
 * @remarks WARNING! This implementation is incomplete:
 *
 * - Marks that affect existing content are removed instead of muted when rebased over the deletion of that content.
 * This prevents us from then reinstating the mark when rebasing over the revive.
 *
 * - Tombs are not added when rebasing an insert over a gap that is immediately left of deleted content.
 * This prevents us from being able to accurately track the position of the insert.
 *
 * - Tiebreak ordering is not respected.
 *
 * - Support for moves is not implemented.
 *
 * - Support for slices is not implemented.
 */
export declare function rebase(change: SequenceChangeset, base: TaggedChange<SequenceChangeset>): SequenceChangeset;
//# sourceMappingURL=rebase.d.ts.map