export declare type QueueType = 'undoQueue' | 'redoQueue'; export interface QueueItemType { /** * 补丁数据 */ patches: any; /** * 队列信息 */ queueInfo: any; } export interface DataType extends QueueItemType { data: string; } export interface HandleQueueCallbackType { (queueInfo: any, currentData: any): void; } export interface HandleQueueType { /** * 是否允许撤销 */ allowUndo: boolean; /** * 是否允许还原 */ allowRedo: boolean; /** * 初始化 * @param initData 初始化数据 * @returns */ init: (initData: any) => void; /** * 撤销操作 * @returns */ onUndo: (cb?: HandleQueueCallbackType) => any; /** * 恢复操作 * @returns */ onRedo: (cb?: HandleQueueCallbackType) => any; /** * 添加记录 * @param data 最新数据 * @param queueInfo 队列信息 * @returns */ handleRecord: (data: any, queueInfo: any) => void; /** * 操作队列 */ queue: Record; /** * 清空队列 * @returns void */ clear: () => void; /** * 待撤销队列 */ undoQueue: QueueItemType[]; /** * 待还原队列 */ redoQueue: QueueItemType[]; /** * 获取完整数据 * @param index 索引 * @returns */ getCompleteData: (index: number, type: QueueType) => DataType | null; } export interface HandleQueueParams { } /** * * @param props */ export declare const useHandleQueue: (props: HandleQueueParams) => HandleQueueType;