import { Nullable } from '../../../../types/general';
import { RTEBlock } from '../blocks/block.abstract';
import { RTENode } from './node.abstract';
/**
 * Abstract class for decorator nodes. A decorator node modifies content like an image node that will delete the whole node when the delete button is pressed.
 */
export declare abstract class RTEDecoratorNode<P extends RTEBlock = RTEBlock> extends RTENode<P> {
  static DECORATOR_CONTAINER_CLASS: string;
  static DECORATOR_NODE_CLASS: string;
  type: string;
  parent: P;
  isSelected: boolean;
  /**
   * Check the element is a decorator node container.
   *
   * @param {HTMLElement} element - The checked element.
   * @returns {boolean} - The result of the check.
   */
  static isDecoratorNodeContainerElement(element: HTMLElement): boolean;
  /**
   * Get the decorator node element within the container.
   *
   * @param {HTMLElement} container - The container element.
   * @returns {Nullable<HTMLElement>} - The decorator node element, if found.
   */
  static getDecoratorNodeElement(container: HTMLElement): Nullable<HTMLElement>;
  /**
   * @inheritDoc
   */
  getRangeEndOffset(): number;
  /**
   * @inheritDoc
   */
  getRangeContainer(): Nullable<Node>;
  /**
   * The decorator node is not content editable from the outside.
   *
   * @returns {boolean} - Always returns false for decorator nodes.
   */
  isContentEditable(): boolean;
}
