import { SpacingTokenType, TextColorsTokenType } from '../../types/design-token.type';
import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
/**
 * @vegaVersion 1.0.4
 */
export declare class VegaIcon {
  private static readonly iconStyleCache;
  protected readonly globalSlimmers: GlobalSlimmers;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaIconElement>;
  host: HTMLVegaIconElement;
  /**
   * Specifies the required icon design token for the icon.
   *
   * @vegaVersion 1.0.4
   */
  icon: string;
  /**
   * The below method is e2e-test covered in
   * @see {module:icon-changed-from-vega-icon-to-fa-icon-class}
   */
  watchIcon(): void;
  /**
   * Specifies the width and height of the icon.
   *    For Third Party Icons (e.g., Font Awesome),
   *    it sets the icon's font-size.
   *
   * @vegaVersion 1.0.4
   */
  size: SpacingTokenType;
  /**
   * Specifies the color of the icon.
   *
   * If the color prop is `undefined`, it defaults to `currentColor`.
   *
   * @vegaVersion 1.26.0
   */
  color?: TextColorsTokenType;
  componentWillLoad(): void;
  render(): VegaIcon;
  /**
   * Verify whether the icon is FA icon or not
   *
   * @param {string} icon - the icon name
   * @returns {boolean} - return true if the icon is FA icon
   */
  private isThirdPartyIcon;
  private renderForVegaIconToken;
  /**
   * The below method is e2e-test covered in
   * @see {module:render-correct-size-with-fa-icon}
   * @see {module:append-fa-icon-styles-to-shadow-dom}
   */
  private renderForThirdPartyIcon;
  private formatAndValidSize;
  /**
   * The below method is e2e-test covered in
   * @see {module:render-correct-size-with-fa-icon}
   */
  private formatThirdPartyIconSize;
  /**
   * The below method is e2e-test covered in
   * @see {module:console-warn-when-load-fa-lib-timeout}
   */
  private cloneFAIconStyles;
  /**
   * The below method is e2e-test covered in
   * @see {module:append-fa-icon-styles-to-shadow-dom}
   */
  private appendStyles;
  /**
   * The below method is e2e-test covered in
   * @see {module:append-fa-icon-styles-to-shadow-dom}
   */
  private getIconStyleHTML;
}
