/*!
 * 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 readonly rebaser;
    private readonly enricher;
    private readonly transactionCommits;
    /**
     * The number of commits before the start of each active transaction scope.
     * For a stack of `n` transaction scopes, the array will contain `n` integers,
     * where the integer at index `i` is the number of commits made before the start of the `i`th transaction scope
     * (therefore, the first element in the array, if present, is always 0)
     */
    private readonly transactionScopesStart;
    constructor(rebaser: ChangeRebaser<TChange>, enricher: ChangeEnricherReadonlyCheckout<TChange>);
    startNewTransaction(): void;
    commitCurrentTransaction(): void;
    abortCurrentTransaction(): void;
    addTransactionStep(commit: GraphCommit<TChange>): void;
    getComposedChange(revision: RevisionTag): TChange;
}
//# sourceMappingURL=transactionEnricher.d.ts.map