import { Edge, Node } from 'reactflow'; import { StateCreator } from 'zustand'; import { ActionPayload } from '../../types'; import { FlowEditorStore } from '../actions'; interface InternalClipboardData { nodes: Node[]; edges: Edge[]; } export interface PublicGeneralAction { /** * 选择单个元素 * @param id - 元素 id */ selectElement: (id: string) => void; /** * 选择多个元素 * @param ids - 元素 id 数组 * @param expendSelection - 是否扩展选择,默认为 false */ selectElements: (ids: string[], expendSelection?: boolean) => void; /** * 选择所有元素 */ selectAll: () => void; /** * 取消选择单个元素 * @param id - 元素 id */ deselectElement: (id: string) => void; /** * 取消选择所有元素 */ deselectAll: () => void; /** * 删除选中的元素 */ deleteSelection: () => void; /** * 撤销操作 */ undo: () => void; /** * 重做操作 */ redo: () => void; /** * 复制选中的元素 * @returns Promise */ copySelection: () => Promise; /** * 粘贴选中的元素 * @returns Promise */ paste: () => Promise; } export interface GeneralActionSlice extends PublicGeneralAction { internalUpdateSelection: (selectedKeys: string[], payload: ActionPayload) => void; onElementSelectChange: (id: string, selected: boolean) => void; pasteIntoFlow: (clipboard: InternalClipboardData) => void; actionList: () => { undo: number; redo: number; }; } export declare const generalActionSlice: StateCreator; export {};