import { InsertNewParagraphAction } from '../../actions/insert-new-paragraph-action';
import type { RTEListItemBlock } from '../../blocks/list-item-block';
import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
/**
 * Insert new paragraph into current list item block at special position.
 */
export declare class ListItemInsertNewParagraphStrategy extends ActionHandleStrategy<InsertNewParagraphAction, RTEListItemBlock> {
  /**
   * @inheritDoc
   */
  protected handleAction(action: InsertNewParagraphAction, target: RTEListItemBlock): void;
  /**
   * Breaks a single list item block at a specific position.
   *
   * @param {RTETextNode} splitNode - The node that needs to be split within a list item block.
   * @param {number} startOffsetOfNode - The index within the `splitNode` where the break operation should occur.
   * @param {RTEListItemBlock} target - The list item block.
   * @returns {Nullable<RTEBlock>} Returns either a new `RTEListItemBlock` if the caret
   * position is at the end of the `splitNode`, or it returns the result of splitting the block at the
   * caret position if it is neither at the start nor at the end.
   */
  private breakSingleListItemBlock;
  /**
   * Breaks a list item at the end and handles the insertion of a new list item or paragraph accordingly.
   *
   * @param {RTEListItemBlock} newListItem - Item that represents a new list item to be added to the existing list.
   * @param {RTEListItemBlock} target - The list item block.
   * @returns {RTEBlock} Returns a `RTEBlock`.
   */
  private breakListItemAtEnd;
  /**
   * Copy the inline style to new node
   *
   * @param {RTETextNode} needCopedNode - The node that needed to be copied to
   * @returns {RTETextNode} Returns a `RTETextNode`.
   */
  private copyInlineStyleToNewNode;
}
