import { IndexPath } from './indexPath.js'; import { MutationBaseOptions } from './options.js'; export type NodeOperation = { type: 'insert'; index: number; nodes: T[]; } | { type: 'remove'; indexes: number[]; } | { type: 'replace'; } | { type: 'removeThenInsert'; removeIndexes: number[]; insertIndex: number; insertNodes: T[]; }; export declare function insertOperation(index: number, nodes: T[]): NodeOperation; export declare function removeOperation(indexes: number[]): NodeOperation; export declare function replaceOperation(): NodeOperation; type OperationMap = Map>; export declare function getInsertionOperations(indexPath: IndexPath, nodes: T[], operations?: OperationMap): OperationMap; export declare function getRemovalOperations(indexPaths: IndexPath[]): OperationMap; export declare function getReplaceOperations(indexPath: IndexPath, node: T): OperationMap; export declare function applyOperations(node: T, operations: OperationMap, options: MutationBaseOptions): T; export declare function arraySplice(array: T[], start: number, deleteCount: number, ...items: T[]): T[]; export declare function transformPathsByOperations(paths: IndexPath[], operations: OperationMap): (IndexPath | undefined)[]; export {};