import { EventEmitter } from '../../stencil-public-runtime';
import { BreakpointsTokenType } from '../../types/design-token.type';
import { ResponsiveType } from '../../types/ui.type';
import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core';
import { VegaAppHeaderAvatarConfig, VegaAppHeaderButtonDropdownConfig, VegaAppHeaderButtonSize, VegaAppHeaderLabelConfig } from './types';
import { PageResizeObserverSlimmer } from '../../helpers/slimmers/page-resize-observer-slimmer';
import { ChildNodesEventPreventSlimmer } from '../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer';
import { EventEmitSlimmerBase } from '../../helpers/event-manager/slimmers/event-emit-slimmer';
import { VegaMenuArrowIconRenderer } from './slimmers/renderers/vega-menu-arrow-icon-renderer';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
import { VegaAppHeaderButtonDropdownRenderer } from './slimmers/renderers/vega-app-header-button-dropdown-renderer';
import { AriaAttributesValueMapper } from '../../helpers/slimmers/mutation-observer/aria-attributes-value-mapper';
/**
 * @vegaVersion 1.11.0
 */
export declare class VegaAppHeaderButton {
  protected readonly globalSlimmers: GlobalSlimmers;
  /**
   * The below method is e2e-test covered in
   * @see{module:vega-app-header-button-resize-e2e}
   */
  protected readonly pageResizeObserverSlimmer: PageResizeObserverSlimmer;
  protected dropdownEventPrevent: ChildNodesEventPreventSlimmer;
  protected clickEventEmitter: EventEmitSlimmerBase;
  protected dropdownClickEventEmitter: EventEmitSlimmerBase;
  protected resetEventEmitter: EventEmitSlimmerBase;
  protected vegaMenuArrowIconRenderer: VegaMenuArrowIconRenderer;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaAppHeaderButtonElement>;
  protected dropdownRenderer: VegaAppHeaderButtonDropdownRenderer;
  protected ariaAttributesValueMapper: AriaAttributesValueMapper;
  /**
   * Used to determine whether the avatar image is loaded or not.
   */
  private avatarImgLoaded;
  host: HTMLVegaAppHeaderButtonElement;
  isDropdownShow: boolean;
  currentBreakpoint: BreakpointsTokenType;
  /**
   * Specifies the configuration for the dropdown functionality
   *    of the app header button.
   *
   * @vegaVersion 1.11.0
   */
  dropdown: VegaAppHeaderButtonDropdownConfig;
  /**
   * Specifies the size of the app header button.
   *
   * @vegaVersion 1.11.0
   */
  size: ResponsiveType<VegaAppHeaderButtonSize>;
  /**
   * Specifies the display configuration of the app header button label.
   *
   * @vegaVersion 2.77.1
   */
  labelConfig: VegaAppHeaderLabelConfig;
  /**
   * Specifies the label or text content of the app header button.
   *
   * @vegaVersion 1.11.0
   */
  label: string;
  /**
   * Determines whether to display the label of the app header button
   *    directly on the button itself or in a tooltip
   *    when the user hovers over the button.
   *
   * @vegaVersion 1.11.0
   */
  showLabel: boolean;
  /**
   * Specifies the configuration for the avatar image or icon
   *    displayed in the app header button.
   *
   * @vegaVersion 1.11.0
   */
  avatar: VegaAppHeaderAvatarConfig;
  /**
   * The below method is e2e-test covered in
   * @see{module:re-render-avatar-image-when-re-set-the-avatar-image-src}
   */
  watchAvatar(): void;
  /**
   * Specifies the position of the avatar in relation to the label
   *    within the app header button.
   *
   * @vegaVersion 1.11.0
   */
  avatarPosition: 'right' | 'left';
  /**
   * Specifies whether to show a border around the app header button.
   *
   * @vegaVersion 1.11.0
   */
  showBorder: boolean;
  /**
   * Specifies whether to display a menu arrow icon in the app header button.
   *
   * @vegaVersion 1.11.0
   */
  showMenuArrowIcon: boolean;
  /**
   * Specifies whether the app header button is displayed in a selected state.
   *
   * @vegaVersion 1.15.0
   */
  selected: boolean;
  /**
   * An event emitter notifying the click event of an app header button.
   *
   * @vegaVersion 1.11.0
   */
  vegaClick: EventEmitter;
  /**
   * An event emitter notifying the click event of an app header button.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  click: EventEmitter;
  /**
   * An event emitter notifying the click event of a dropdown item
   *    in the app header.
   *
   * @vegaVersion 1.23.0
   */
  vegaDropdownClick: EventEmitter<string>;
  /**
   * An event emitter notifying the click event of a dropdown item
   *    in the app header.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  dropdownClick: EventEmitter<string>;
  /**
   * An event emitter notifying the reset event in the dropdown.
   *
   * @vegaVersion 2.73.0
   */
  vegaReset: EventEmitter<string>;
  /**
   * An event emitter notifying the reset event in the dropdown.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.73.0
   */
  reset: EventEmitter<string>;
  render(): VegaAppHeaderButton;
  private renderButton;
  private renderButtonLabel;
  private renderAvatar;
  private renderFallbackTextAvatar;
  /**
   * The below method is e2e-test covered in
   * @see{module:render-avatar-fallbackText-when-avatar-image-load-failure}
   */
  private renderImgAvatar;
  private renderIconAvatar;
  private renderDropdownContainer;
  /**
   * The below method is e2e-test covered in
   * @see{module:render-avatar-fallbackText-when-avatar-image-load-failure}
   */
  private setAvatarImgLoaded;
  /**
   * The below method is e2e-test covered in
   * @see{module:render-avatar-fallbackText-when-avatar-image-load-failure}
   */
  private handleImgAvatarLoadError;
}
