/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { RevisionMetadataSource, TaggedChange } from "../../core/index.js";
import { IdAllocator } from "../../util/index.js";
import { CrossFieldManager } from "../modular-schema/index.js";
import { Changeset } from "./types.js";
export type NodeChangeInverter<TNodeChange> = (change: TNodeChange) => TNodeChange;
/**
 * Inverts a given changeset.
 * @param change - The changeset to produce the inverse of.
 * @returns The inverse of the given `change` such that the inverse can be applied after `change`.
 *
 * WARNING! This implementation is incomplete:
 * - Support for slices is not implemented.
 */
export declare function invert<TNodeChange>(change: TaggedChange<Changeset<TNodeChange>>, invertChild: NodeChangeInverter<TNodeChange>, isRollback: boolean, genId: IdAllocator, crossFieldManager: CrossFieldManager, revisionMetadata: RevisionMetadataSource): Changeset<TNodeChange>;
//# sourceMappingURL=invert.d.ts.map