/**
 * 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-local
 * @emails oncall+draft_js
 */
import type ContentState from "./ContentState";
import type { DraftBlockType } from "./DraftBlockType";
import type { DraftEditorCommand } from "./DraftEditorCommand";
import type EditorState from "./EditorState";
import type SelectionState from "./SelectionState";
import type URI from "fbjs/lib/URI";
export type DataObjectForLink = {
  url: string,
  ...
};
export type RichTextUtils = {
  currentBlockContainsLink: (editorState: EditorState) => boolean,
  getCurrentBlockType: (editorState: EditorState) => DraftBlockType,
  getDataObjectForLinkURL: (uri: URI) => DataObjectForLink,
  handleKeyCommand: (editorState: EditorState, command: DraftEditorCommand | string) => ?EditorState,
  insertSoftNewline: (editorState: EditorState) => EditorState,
  onBackspace: (editorState: EditorState) => ?EditorState,
  onDelete: (editorState: EditorState) => ?EditorState,
  onTab: (event: SyntheticKeyboardEvent<>, editorState: EditorState, maxDepth: number) => EditorState,
  toggleBlockType: (editorState: EditorState, blockType: DraftBlockType) => EditorState,
  toggleCode: (editorState: EditorState) => EditorState,
  toggleInlineStyle: (editorState: EditorState, inlineStyle: string) => EditorState,
  toggleLink: (editorState: EditorState, targetSelection: SelectionState, entityKey: ?string) => EditorState,
  tryToRemoveBlockStyle: (editorState: EditorState) => ?ContentState,
  ...
};