import { Nullable } from '../../../../../types/general';
import { SplitBlockWithNodeAction } from '../../actions/split-block-with-node-action';
import { RTEBlock } from '../../blocks/block.abstract';
import type { RTETextBlock } from '../../blocks/text-block';
import { RTETextNode } from '../../nodes/text-node';
import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
/**
 * Split the current node with a special position strategy.
 */
export declare class BlockSplitWithTextNodeStrategy extends ActionHandleStrategy<SplitBlockWithNodeAction, RTETextBlock> {
  /**
   * @inheritDoc
   */
  protected handleAction(action: SplitBlockWithNodeAction, target: RTETextBlock): void;
  /**
   * Splits a text node at a specified offset within a block of nodes and returns a new block with the split nodes.
   *
   * @param {RTETextNode} splitNode - The text node that will be split
   * @param {number} startOffsetOfNode - The index at which will split the text content of the `splitNode`.
   * @param {RTETextBlock} textBlock - The text block need to be splited.
   * @returns {Nullable<RTEBlock>} return either an RTEBlock object or null.
   */
  protected splitTextNodeBlock(splitNode: RTETextNode, startOffsetOfNode: number, textBlock: RTETextBlock): Nullable<RTEBlock>;
}
