import { RTEDropdownListGroup, RTEDropdownListItem, VegaRTECreateElementFunction, VegaRTERenderResult, VegaRTEToolbarRenderContext } from '../../interface';
import { VegaRTEToolbarButtonRenderer } from '../base-toolbar-button-renderer';
export declare type LanguageSelectedCallback = (selectedLanguage: string) => void;
/**
 * Toolbar button renderer for language selection in Vega Rich Text Editor.
 */
export declare class RTELanguageToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
  private languageList;
  private selectedLanguage;
  private labelRef;
  private languageChangeCallback;
  constructor(languageList: (RTEDropdownListItem | RTEDropdownListGroup)[], languageChangeCallback: LanguageSelectedCallback, selectedLanguage: string);
  /**
   * Public method to set the selected language.
   *
   * @param {string} language The language key to set as selected.
   */
  setSelectedLanguage(language: string): void;
  /**
   * The source edit mode does not affect the language button visibility.
   *
   * @returns {boolean} True if the button is hidden, false otherwise.
   */
  isHidden(): boolean;
  /**
   * @inheritDoc
   */
  render(createElement: VegaRTECreateElementFunction, editorContext: VegaRTEToolbarRenderContext): VegaRTERenderResult;
  /**
   * Override to render the button label with custom behavior.
   *
   * @inheritDoc
   */
  protected renderButtonLabel(h: VegaRTECreateElementFunction, editorContext: VegaRTEToolbarRenderContext, label: string): VegaRTERenderResult;
  /**
   * Handles the button click event. No need this method for language button.
   *
   * @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
   */
  protected handleButtonClick(editorContext: VegaRTEToolbarRenderContext): void;
  /**
   * Handles the language selection event.
   *
   * @param {string} itemKey - The key of the selected language item.
   */
  protected handleDropdownClick: (itemKey: string) => void;
  /**
   * Gets the label of a language by its key.
   *
   * @param {string} key The language key to look up.
   * @returns {string} The label of the language, or the key if not found.
   */
  private getLanguageLabelByKey;
}
