import { EventEmitter } from '../../stencil-public-runtime';
import { TextColorsTokenType } from '../../types/design-token.type';
import { VegaButtonType } from '../vega-button/types';
import { VegaButtonCircleSize, VegaButtonCircleVariant, VegaButtonCircleTooltip } from './types';
import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core';
import { EventEmitSlimmerBase } from '../../helpers/event-manager/slimmers/event-emit-slimmer';
import { ChildNodesEventPreventSlimmer } from '../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
import { AriaAttributesValueMapper } from '../../helpers/slimmers/mutation-observer/aria-attributes-value-mapper';
/**
 * @vegaVersion 1.0.2
 */
export declare class VegaButtonCircle {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected clickEventEmitter: EventEmitSlimmerBase;
  protected eventPrevent: ChildNodesEventPreventSlimmer;
  protected ariaAttributesValueMapper: AriaAttributesValueMapper;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaButtonCircleElement>;
  host: HTMLVegaButtonCircleElement;
  /**
   * Specifies the size of the circular button.
   *
   * @vegaVersion 1.0.2
   */
  size: VegaButtonCircleSize;
  /**
   * Specifies the variant and prominence of the circular button.
   *
   * The following options are available for the `variant` parameter:
   * - `primary`:
   *      The circular button is rendered with the `bg-action` background color,
   *      which typically signifies a primary or important action.
   * - `secondary`:
   *      The circular button is rendered with a transparent background and
   *      an `action` border color. This variant is often used for
   *      secondary or less prominent actions.
   * - `icon-only`:
   *      The circular button is rendered with an icon displayed in the default state,
   *      and the circle background appears when hovering over the button.
   *
   * @vegaVersion 1.0.2
   */
  variant: VegaButtonCircleVariant;
  /**
   * Specifies the icon to be displayed on the circular button,
   *    which can be selected from a list of predefined icon tokens
   *    or specified using a Font Awesome class.
   *
   * @vegaVersion 1.0.4
   */
  icon: string;
  /**
   * Specifies the text to be displayed in the tooltip for the circular button
   *    and sets it as the `aria-label` for accessibility.
   *
   * @vegaVersion 1.0.4
   */
  label: string;
  /**
   * Specifies whether the circular button element is disabled.
   *
   * @vegaVersion 1.0.4
   */
  disabled: boolean;
  /**
   * Indicates the danger status of the circular button,
   *    typically used for destructive actions.
   *
   * @vegaVersion 1.3.0
   */
  danger: boolean;
  /**
   * Specifies the type of button and its behavior in relation to
   *    form submission and data reset.
   *
   * @vegaVersion 1.16.0
   */
  type: VegaButtonType;
  /**
   * Specifies the color of the icon displayed on the circular button.
   *
   * @vegaVersion 1.24.0
   */
  iconColor: TextColorsTokenType;
  /**
   * Indicates whether to use a tooltip to display the label for the button circle.
   *
   * @vegaVersion 2.0.0
   */
  showTooltip: boolean;
  /**
   * Specifies the properties of the `vega-tooltip` displayed for the button circle.
   *
   * @vegaVersion 1.52.0
   */
  tooltip: VegaButtonCircleTooltip;
  /**
   * An event emitter notifying the click event of the circular button.
   *
   * @vegaVersion 1.0.11
   */
  vegaClick: EventEmitter;
  /**
   * An event emitter notifying the click event of the circular button.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  click: EventEmitter;
  componentWillLoad(): void;
  render(): VegaButtonCircle;
  private renderButton;
  private handleClick;
  private renderContent;
  /**
   * get the button content icon size from the button size
   *
   * @param {VegaButtonCircleSize} size the button size
   * @returns {SpacingTokenType} the icon size
   */
  private getIconSize;
}
