import { Node } from "./SlateValue"; import { Range } from "./Range"; import { Path } from "./Path"; export declare type SetSelectionOperation = { type: 'set_selection'; [key: string]: unknown; properties: null; newProperties: Range; } | { type: 'set_selection'; [key: string]: unknown; properties: Partial; newProperties: Partial; } | { type: 'set_selection'; [key: string]: unknown; properties: Range; newProperties: null; }; export declare type InsertNodeOperation = { type: 'insert_node'; path: Path; node: Node; [key: string]: unknown; }; export declare type InsertTextOperation = { type: 'insert_text'; path: Path; offset: number; text: string; [key: string]: unknown; }; export declare type MergeNodeOperation = { type: 'merge_node'; path: Path; position: number; properties: Partial; [key: string]: unknown; }; export declare type MoveNodeOperation = { type: 'move_node'; path: Path; newPath: Path; [key: string]: unknown; }; export declare type RemoveNodeOperation = { type: 'remove_node'; path: Path; node: Node; [key: string]: unknown; }; export declare type RemoveTextOperation = { type: 'remove_text'; path: Path; offset: number; text: string; [key: string]: unknown; }; export declare type SetNodeOperation = { type: 'set_node'; path: Path; properties: Partial; newProperties: Partial; [key: string]: unknown; }; export declare type SplitNodeOperation = { type: 'split_node'; path: Path; position: number; properties: Partial; [key: string]: unknown; }; export declare type SelectionOperation = SetSelectionOperation; export declare type NodeOperation = InsertNodeOperation | MergeNodeOperation | MoveNodeOperation | RemoveNodeOperation | SetNodeOperation | SplitNodeOperation; export declare type TextOperation = InsertTextOperation | RemoveTextOperation; export declare type SlateOperation = SelectionOperation | NodeOperation | TextOperation;