import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
import { VegaRichTextContentRenderer } from './slimmers/renderers/vega-rich-text-content-renderer';
import { VegaRTEContent } from '../vega-rich-text-editor/dto/content-state';
import { VegaRichTextContentStateController } from './slimmers/controllers/vega-rich-text-content-state-controller';
import { VegaRTEExtension } from '../vega-rich-text-editor/extensions/extension.abstract';
import { RTEExtensionStylesController } from './slimmers/controllers/vega-rich-text-content-extensions-styles-controller';
import { DarkModeStateControllerSlimmer } from '../../helpers/slimmers/dark-mode-state-controller-slimmer';
/**
 * @vegaVersion 2.34.0
 */
export declare class VegaRichTextContent {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaRichTextContentElement>;
  protected readonly vegaRichTextContentRenderer: VegaRichTextContentRenderer;
  protected readonly vegaRichTextContentStateController: VegaRichTextContentStateController;
  protected readonly vegaRichTextContentExtensionsStylesController: RTEExtensionStylesController;
  protected readonly darkModeStateControllerSlimmer: DarkModeStateControllerSlimmer;
  host: HTMLVegaRichTextContentElement;
  /**
   * Specifies a placeholder string that displays as a
   *    temporary hint or example within the rich text content.
   *
   * It indicates the expected format or pattern of
   *    the input within the rich text content.
   *
   * @vegaVersion 2.34.0
   */
  placeholder?: string;
  /**
   * Specifies whether the rich text content is editable.
   *
   * @vegaVersion 2.34.0
   */
  contentEditable: boolean;
  /**
   * Holds the custom styles generated by extensions.
   */
  extensionStyles: string;
  isInDarkMode: boolean;
  /**
   * Specifies the text or formatted information displayed by the rich text content, which can be either VegaRTEContent or VegaRTEContentBlock.
   * It is recommended to use the VegaRTEContent type.
   * Only in exceptional cases should the original data in the VegaRTEContentBlock type be used.
   *
   * @vegaVersion 2.34.0
   */
  content: VegaRTEContent;
  watchValueUpdate(): void;
  /**
   * Defines the configuration for rich text content extensions.
   * It enables support for custom nodes, ensuring that extended content is rendered correctly.
   *
   * @vegaVersion 2.62.0
   */
  extensions: VegaRTEExtension[];
  watchExtensions(newValue: VegaRTEExtension[], oldValue: VegaRTEExtension[]): void;
  /**
   * Invoke this method to focus on rich text content editable div
   *
   * @vegaVersion 2.34.0
   */
  vegaFocus(): Promise<void>;
  render(): VegaRichTextContent;
}
