import { UndoRedoRecord } from '../undoRedo'; import { OperateTypeEnum, OperatePositionEnum } from './types'; import { LinkedTree, LinkedTreeNode, IDisposable } from 'ts-toolset'; export interface ITreeDataset extends IDisposable { /** 数据操作 */ operate(type: OperateTypeEnum, position: OperatePositionEnum, source: LinkedTreeNode, target?: LinkedTreeNode): void; /** 获取撤销恢复记录 */ getOperateUndoReodoRecord(type: OperateTypeEnum, position: OperatePositionEnum, source: LinkedTreeNode, target?: LinkedTreeNode): UndoRedoRecord; /** 设置LinkedTree * @description 因为使用Ioc,无法在构造函数直接传入参,需要额外提供方法设置属性,在程序初始化的时候要设置相应的属性 */ setLinkedTree(linkedTree: LinkedTree): void; } export declare abstract class TreeDataset implements ITreeDataset { private _linkedTree; setLinkedTree(linkedTree: LinkedTree): void; operate(type: OperateTypeEnum, position: OperatePositionEnum, source: LinkedTreeNode, target?: LinkedTreeNode): void; getOperateUndoReodoRecord(type: OperateTypeEnum, position: OperatePositionEnum, source: LinkedTreeNode, target?: LinkedTreeNode): UndoRedoRecord; getUpdateDataRedoRecord(source: LinkedTreeNode, changes: Partial): UndoRedoRecord; dispose(): void; }