import { RTEBlock } from '../blocks/block.abstract';
import { RTENode } from '../nodes/node.abstract';
/**
 * Predicate class provides static methods to check specific conditions on HTML elements or dto instances.
 */
export declare class Predicate {
  static RTE_TEXT_NODE_CLASS_NAME: string;
  static RTE_TEXT_BLOCK_CLASS_NAME: string;
  /**
   * Checks if the given class name corresponds to a text block.
   *
   * @param {string} className The class name to check.
   * @returns {boolean} True if the class name corresponds to a text block, false otherwise.
   */
  static isTextBlock(className: string): boolean;
  /**
   * Checks if the given class name corresponds to a code block.
   *
   * @param {string} className The class name to check.
   * @returns {boolean} True if the class name corresponds to a code block, false otherwise.
   */
  static isCodeBlock(className: string): boolean;
  /**
   * Checks if the given class name corresponds to a list block.
   *
   * @param {string} className The class name to check.
   * @returns {boolean} True if the class name corresponds to a list block, false otherwise.
   */
  static isListBlock(className: string): boolean;
  /**
   * Checks if the given class name corresponds to a list item block.
   *
   * @param {string} className The class name to check.
   * @returns {boolean} True if the class name corresponds to a list item block, false otherwise.
   */
  static isListItemBlock(className: string): boolean;
  /**
   * Checks if the given class name corresponds to a text node.
   *
   * @param {string} className The class name to check.
   * @returns {boolean} True if the class name corresponds to a text node, false otherwise.
   */
  static isTextNode(className: string): boolean;
  /**
   * Checks if the given block or node instance is a text node and has a link annotation.
   *
   * @param {RTEBlock | RTENode} blockOrNodeInstance The block or node instance to check.
   * @returns {boolean} True if the block or node instance is a text node and has a link annotation, false otherwise.
   */
  static isLinkNode(blockOrNodeInstance: RTEBlock | RTENode): boolean;
  /**
   * Checks if the given block or node instance is a code node, which is defined as a text node that has a code annotation.
   *
   * @param {RTEBlock | RTENode} blockOrNodeInstance The block or node instance to check.
   * @returns {boolean} True if the block or node instance is a code node, false otherwise.
   */
  static isCodeNode(blockOrNodeInstance: RTEBlock | RTENode): boolean;
  /**
   * Check if the given block or node instance is an image node, which is defined as an instance of RTEImageNode.
   *
   * @param {RTEBlock | RTENode} blockOrNodeInstance The block or node instance to check.
   * @returns {boolean} True if the block or node instance is an image node, false otherwise.
   */
  static isImageNode(blockOrNodeInstance: RTEBlock | RTENode): boolean;
  /**
   * Check if the given block or node instance is a code block node, which is defined as an instance of RTECodeBlockNode.
   *
   * @param {RTEBlock | RTENode} blockOrNodeInstance The block or node instance to check.
   * @returns {boolean} True if the block or node instance is a code block node, false otherwise.
   */
  static isCodeBlockNode(blockOrNodeInstance: RTEBlock | RTENode): boolean;
}
