/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { ChangesetLocalId } from "../../core/index.js";
import type { FieldEditor, NodeId } from "../modular-schema/index.js";
import type { CellId, Changeset, MarkList } from "./types.js";
export interface SequenceFieldEditor extends FieldEditor<Changeset> {
    insert(index: number, count: number, firstId: ChangesetLocalId): Changeset;
    remove(index: number, count: number, id: ChangesetLocalId): Changeset;
    revive(index: number, count: number, detachEvent: CellId, isIntention?: true): Changeset;
    /**
     *
     * @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
     * @param detachCellId - The local ID to assign to the first cell being emptied by the move
     * @param attachCellId - The local ID to assign to the first cell being filled by the move
     */
    move(sourceIndex: number, count: number, destIndex: number, detachCellId: ChangesetLocalId, attachCellId: ChangesetLocalId): Changeset;
    moveOut(sourceIndex: number, count: number, id: ChangesetLocalId): Changeset;
    moveIn(destIndex: number, count: number, moveId: ChangesetLocalId, attachCellId: ChangesetLocalId): Changeset;
    return(sourceIndex: number, count: number, destIndex: number, detachCellId: CellId, attachCellId: CellId): Changeset;
}
export declare const sequenceFieldEditor: {
    buildChildChange: (index: number, change: NodeId) => MarkList;
    insert: (index: number, count: number, firstId: ChangesetLocalId) => MarkList;
    remove: (index: number, count: number, id: ChangesetLocalId) => MarkList;
    revive: (index: number, count: number, detachEvent: CellId) => MarkList;
    move(sourceIndex: number, count: number, destIndex: number, detachCellId: ChangesetLocalId, attachCellId: ChangesetLocalId): MarkList;
    moveOut(sourceIndex: number, count: number, detachCellId: ChangesetLocalId): MarkList;
    moveIn(destIndex: number, count: number, moveId: ChangesetLocalId, attachCellId: ChangesetLocalId): MarkList;
    return(sourceIndex: number, count: number, destIndex: number, detachCellId: CellId, attachCellId: CellId): MarkList;
};
//# sourceMappingURL=sequenceFieldEditor.d.ts.map