import { InsertFunctionBlockAction } from '../actions/insert-function-block-action';
import type { RTEBlock } from '../../../dto/blocks/block.abstract';
import { VegaRTEContent } from '../../../dto/content-state';
import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
/**
 * Strategy to handle the insertion of a function block into the rich text editor.
 */
export declare class InsertFunctionBlockStrategy extends ActionHandleStrategy<InsertFunctionBlockAction, RTEBlock | VegaRTEContent> {
  /**
   * @inheritDoc
   */
  protected handleAction(action: InsertFunctionBlockAction, target: RTEBlock | VegaRTEContent): void;
  /**
   * Get a function block based on the specified type.
   *
   * @param {string} type - The type of function block to create.
   * @returns {RTEFunctionBlock} The function block instance.
   */
  private getFunctionBlock;
  /**
   * We need to get the correct block if the current target is a function block element to avoid nesting function blocks.
   *
   * @param {RTEBlock | VegaRTEContent} currentTarget - The current target block or content.
   * @returns {Nullable<RTEBlock>} The reference block.
   */
  private getReferenceBlock;
}
