import { Nullable } from '../../../../../../types/general';
import { JiraCodeToRTECodeBlockStrategy } from './jira-code-to-rte-code-block-strategy';
import { RTECodeBlock } from '../../../../dto/blocks/code-block';
/** Transform vega-code-block element to code block DTO */
export declare class VegaCodeBlockToRTECodeBlockStrategy extends JiraCodeToRTECodeBlockStrategy {
  /**
   * Can be handle.
   *
   * TODO: Update the browser clipboard data to fix the issue with nested vega-code-block elements.
   * In safari the html snippet will be like: <vega-code-block><p><span>paragraph</span></p><vega-code-block></vega-code-block></vega-code-block>
   * The vega-code-block nested inside the vega-code-block, so we need to check the child element.
   *
   * @param {HTMLElement[]} elementsArray - Current elements.
   * @param {number} currentIndex - Current element index.
   * @returns {number} - can be handled element count.
   */
  canHandle(elementsArray: HTMLElement[], currentIndex: number): number;
  /**
   * Parse to a code block.
   *
   * @param {HTMLElement[]} elementsArray - Current elements.
   * @returns {Nullable<RTECodeBlock>} - Code block.
   */
  handle(elementsArray: HTMLElement[]): Nullable<RTECodeBlock>;
  /**
   * Append child blocks.
   */
  appendChildBlocks(): void;
  /**
   * Should continue process to child elements.
   *
   * @returns {boolean} - boolean.
   */
  shouldProceedToElementChildren(): boolean;
  /**
   * Checks if the given element is a code block container.
   *
   * @param {HTMLElement} element - The element to check.
   * @returns {boolean} - Boolean result.
   */
  private isCodeBlockContainer;
}
