import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaRichTextEditor } from '../../vega-rich-text-editor';
import { RTEBlock } from '../../dto/blocks/block.abstract';
import { RTEImageNode } from '../../dto/nodes/image-node';
import { RTENode } from '../../dto/nodes/node.abstract';
import { RTERange } from '../../dto/range';
/** Used to control the insert image tool button actions */
export declare class InsertImageController extends VegaSlimmer {
  protected selectionController: VegaRichTextEditor['selectionController'];
  protected value: VegaRichTextEditor['value'];
  protected valueController: VegaRichTextEditor['valueController'];
  protected vegaRichTextEditorRenderer: VegaRichTextEditor['vegaRichTextEditorRenderer'];
  /**
   * Insert a image to current state
   *
   * @param {string} imageUrl The image url
   * @param {RTEBlock[]} selectedBlocks The current selected blocks, if not provided, will get from selectionController
   * @param {RTENode[]} selectedNodes The current selected nodes, if not provided, will get from selectionController
   * @param {RTERange} currentRange The current selected range, if not provided, will get from selectionController
   * @returns {RTEImageNode} RTEImageNode
   */
  insertImageToCaretPosition(imageUrl: string, selectedBlocks?: RTEBlock[], selectedNodes?: RTENode[], currentRange?: RTERange): RTEImageNode;
  /**
   * Add image selected observer
   */
  protected registerObserver(): void;
  /**
   * remove the observer when component removed
   */
  protected unRegisterObserver(): void;
  /**
   * Updates the caret position to the parent element of a new image node.
   *
   * @param {RTEImageNode} newImageNode - An image node in a rich text editor.
   */
  private updateCaretPosition;
  /**
   * The current selected node should be current image node after click image.
   */
  private registerImageSelectedObserver;
  /**
   * remove the observer after component delete
   */
  private removeImageSelectedObserver;
}
