/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { Delta, ITreeCursor, ITreeCursorSynchronous, ChangesetLocalId } from "../../core";
import { ToDelta, FieldChangeRebaser, FieldEditor, FieldChangeHandler } from "../modular-schema";
import { OptionalChangeset } from "./defaultFieldChangeTypes";
export declare const optionalChangeRebaser: FieldChangeRebaser<OptionalChangeset>;
export interface OptionalFieldEditor extends FieldEditor<OptionalChangeset> {
    /**
     * Creates a change which replaces the field with `newContent`
     * @param newContent - the new content for the field
     * @param wasEmpty - whether the field is empty when creating this change
     * @param id - the ID associated with the change.
     */
    set(newContent: ITreeCursor | undefined, wasEmpty: boolean, id: ChangesetLocalId): OptionalChangeset;
}
export declare const optionalFieldEditor: OptionalFieldEditor;
export declare function optionalFieldIntoDelta(change: OptionalChangeset, deltaFromChild: ToDelta): Delta.Mark<ITreeCursorSynchronous>[];
export declare const optionalChangeHandler: FieldChangeHandler<OptionalChangeset, OptionalFieldEditor>;
//# sourceMappingURL=optionalField.d.ts.map