/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { AnchorSet } from "../tree";
import { ChangeFamily, ChangeFamilyEditor } from "./changeFamily";
/**
 * @alpha
 */
export interface ProgressiveEditBuilder<TChange> {
    /**
     * @returns a copy of the internal change list so far.
     */
    getChanges(): TChange[];
}
/**
 * @alpha
 */
export declare abstract class ProgressiveEditBuilderBase<TChange> implements ProgressiveEditBuilder<TChange>, ChangeFamilyEditor {
    protected readonly changeFamily: ChangeFamily<ChangeFamilyEditor, TChange>;
    private readonly changeReceiver;
    private readonly anchorSet;
    private readonly changes;
    constructor(changeFamily: ChangeFamily<ChangeFamilyEditor, TChange>, changeReceiver: (change: TChange) => void, anchorSet: AnchorSet);
    /**
     * Subclasses add editing methods which call this with their generated edits.
     *
     * @sealed
     */
    protected applyChange(change: TChange): void;
    /**
     * {@inheritDoc (ProgressiveEditBuilder:interface).getChanges}
     * @sealed
     */
    getChanges(): TChange[];
    enterTransaction(): void;
    exitTransaction(): void;
}
//# sourceMappingURL=progressiveEditBuilder.d.ts.map