/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @format
 * @flow strict
 * @emails oncall+draft_js
 */

'use strict';

/**
 * A set of editor commands that may be invoked by keyboard commands or UI
 * controls. These commands should map to operations that modify content or
 * selection state and update the editor state accordingly.
 */
export type DraftEditorCommand =
/**
 * Self-explanatory.
 */
'undo' | 'redo'

/**
 * Perform a forward deletion.
 */ | 'delete'

/**
 * Perform a forward deletion to the next word boundary after the selection.
 */ | 'delete-word'

/**
 * Perform a backward deletion.
 */ | 'backspace'

/**
 * Perform a backward deletion to the previous word boundary before the
 * selection.
 */ | 'backspace-word'

/**
 * Perform a backward deletion to the beginning of the current line.
 */ | 'backspace-to-start-of-line'

/**
 * Toggle styles. Commands may be intepreted to modify inline text ranges
 * or block types.
 */ | 'bold' | 'italic' | 'underline' | 'code'

/**
 * Split a block in two.
 */ | 'split-block'

/**
 * Self-explanatory.
 */ | 'transpose-characters' | 'move-selection-to-start-of-block' | 'move-selection-to-end-of-block'

/**
 * Commands to support the "secondary" clipboard provided by certain
 * browsers and operating systems.
 */ | 'secondary-cut' | 'secondary-paste';