/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { ChangeRebaser, GraphCommit, RevisionTag } from "../core/index.js";
import type { ChangeEnricherReadonlyCheckout } from "./changeEnricher.js";
/**
 * Utility for producing an enriched commit out of multiple transaction steps
 */
export declare class TransactionEnricher<TChange> {
    #private;
    constructor(rebaser: ChangeRebaser<TChange>, enricher: ChangeEnricherReadonlyCheckout<TChange>);
    isTransacting(): boolean;
    startTransaction(): void;
    /**
     * Commits the current transaction.
     * @returns A function which can be used to compute the composed change for that transaction's commits. Undefined if the transaction is still ongoing or contained no committed changes.
     */
    commitTransaction(): ((revision: RevisionTag) => TChange) | undefined;
    abortTransaction(): void;
    addTransactionStep(commit: GraphCommit<TChange>): void;
}
//# sourceMappingURL=transactionEnricher.d.ts.map