import { ToolbarButtonSlimmer } from './toolbar-button-slimmer.abstract';
import { ToolbarButtonConfig } from '../../../interface';
import { VegaRichTextEditor } from '../../../vega-rich-text-editor';
import { Nullable } from '../../../../../types/general';
import { RTENode } from '../../../dto/nodes/node.abstract';
import { RTEBlock } from '../../../dto/blocks/block.abstract';
/**
 * Abstract class for visual mode toolbar buttons, except for the source edit button.
 */
export declare abstract class VisualModeToolbarButtonSlimmer extends ToolbarButtonSlimmer {
  protected readonly sourceView: VegaRichTextEditor['sourceView'];
  protected constructor(config: ToolbarButtonConfig);
  /**
   * Determines if the button should be hidden.
   * Hide the button when the editor is in source view mode, except for the source edit button.
   *
   * @returns {boolean} - True if the button is hidden, false otherwise.
   */
  isHidden(): boolean;
  /**
   * Determines if the button should be disabled.
   * Determines whether should disable the button or not when the editor is not in source view mode, except for the source edit button.
   *
   * @returns {boolean} - True if the button is disabled, false otherwise.
   */
  protected isDisabled(): boolean;
  /**
   * Check if the node support text annotation
   *
   * @param {Nullable< RTENode| RTEBlock>} node - The RTE node to check
   * @param {string} annotationActionName - The annotation name to check
   * @returns {boolean} - True if the node support text annotation, false otherwise
   */
  protected shouldDisabledToolbar(node: Nullable<RTENode | RTEBlock>, annotationActionName: string): boolean;
}
