/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { ChangeFamilyEditor, TreeStoredSchema } from "../core";
import { DefaultEditBuilder, IDefaultEditBuilder, ModularChangeFamily } from "../feature-libraries";
import { SharedTreeChange } from "./sharedTreeChangeTypes";
/**
 * Editor for schema changes.
 * The only currently supported operation is to replace the stored schema.
 * @internal
 */
export interface ISchemaEditor {
    /**
     * Updates the stored schema.
     * @param oldSchema - The schema being overwritten.
     * @param newSchema - The new schema to apply.
     * @internal
     */
    setStoredSchema(oldSchema: TreeStoredSchema, newSchema: TreeStoredSchema): void;
}
/**
 * SharedTree editor for transactional tree data and schema changes.
 * @internal
 */
export interface ISharedTreeEditor extends IDefaultEditBuilder {
    /**
     * Editor for schema changes.
     * @internal
     */
    schema: ISchemaEditor;
}
/**
 * Implementation of {@link IDefaultEditBuilder} based on the default set of supported field kinds.
 * @sealed
 */
export declare class SharedTreeEditBuilder extends DefaultEditBuilder implements ChangeFamilyEditor, ISharedTreeEditor {
    private readonly changeReceiver;
    readonly schema: ISchemaEditor;
    constructor(modularChangeFamily: ModularChangeFamily, changeReceiver: (change: SharedTreeChange) => void);
}
//# sourceMappingURL=sharedTreeEditBuilder.d.ts.map