/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { ChangesetLocalId } from "../../core/index.js";
import { FieldEditor } from "../modular-schema/index.js";
import { CellId, Changeset } from "./types.js";
export interface SequenceFieldEditor extends FieldEditor<Changeset> {
    insert(index: number, count: number, firstId: ChangesetLocalId): Changeset<never>;
    remove(index: number, count: number, id: ChangesetLocalId): Changeset<never>;
    revive(index: number, count: number, detachEvent: CellId, isIntention?: true): Changeset<never>;
    /**
     *
     * @param sourceIndex - The index of the first node move
     * @param count - The number of nodes to move
     * @param destIndex - The index the nodes should be moved to, interpreted before detaching the moved nodes
     */
    move(sourceIndex: number, count: number, destIndex: number, id: ChangesetLocalId): Changeset<never>;
    moveOut(sourceIndex: number, count: number, id: ChangesetLocalId): Changeset<never>;
    moveIn(destIndex: number, count: number, id: ChangesetLocalId): Changeset<never>;
    return(sourceIndex: number, count: number, destIndex: number, detachEvent: CellId): Changeset<never>;
}
export declare const sequenceFieldEditor: {
    buildChildChange: <TNodeChange = import("../modular-schema/modularChangeTypes.js").NodeChangeset>(index: number, change: TNodeChange) => Changeset<TNodeChange>;
    insert: (index: number, count: number, firstId: ChangesetLocalId) => Changeset<never>;
    remove: (index: number, count: number, id: ChangesetLocalId) => Changeset<never>;
    revive: (index: number, count: number, detachEvent: CellId) => Changeset<never>;
    move(sourceIndex: number, count: number, destIndex: number, id: ChangesetLocalId): Changeset<never>;
    moveOut(sourceIndex: number, count: number, id: ChangesetLocalId): Changeset<never>;
    moveIn(destIndex: number, count: number, id: ChangesetLocalId): Changeset<never>;
    return(sourceIndex: number, count: number, destIndex: number, detachEvent: CellId): Changeset<never>;
};
//# sourceMappingURL=sequenceFieldEditor.d.ts.map