import { EventEmitter } from '../../stencil-public-runtime';
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 { VegaButtonLinkTarget } from './types';
import { AriaAttributesValueMapper } from '../../helpers/slimmers/mutation-observer/aria-attributes-value-mapper';
/**
 * @vegaVersion 1.0.2
 */
export declare class VegaButtonLink {
  private static readonly defaultLink;
  protected readonly globalSlimmers: GlobalSlimmers;
  protected clickEventEmitter: EventEmitSlimmerBase;
  protected eventPrevent: ChildNodesEventPreventSlimmer;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaButtonLinkElement>;
  protected ariaAttributesValueMapper: AriaAttributesValueMapper;
  host: HTMLVegaButtonLinkElement;
  /**
   * Specifies the URL associated with the button link.
   *   If no URL is set, the component behaves as a button and triggers the click event.
   * 	 If a URL is provided, it behaves as a link and the click event is not emitted.
   *
   * @vegaVersion 1.0.4
   * @defaultValue javascript:void(0);
   */
  link: string;
  /**
   * Specifies the size of the button link.
   *
   * @vegaVersion 1.0.2
   */
  size: 'default' | 'large' | 'small';
  /**
   * Specifies the icon to be displayed on the button link,
   *    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 type of icon used in the button link.
   *
   * The following options are available for the `iconType` parameter:
   * - `icon`:
   *      The icon is rendered as a regular icon without
   *      any additional styling or background.
   * - `button`:
   *      The icon is rendered with a circular background,
   *      providing additional emphasis and visual prominence
   *      to the icon in the button link.
   *
   * @vegaVersion 1.0.5
   */
  iconType: 'icon' | 'button';
  /**
   * Specifies the placement of the icon in relation to
   *    the button link's label.
   *
   * @vegaVersion 1.3.0
   */
  iconAlign: 'left' | 'right';
  /**
   * Specifies the text displayed on the button link.
   *
   * @vegaVersion 1.0.4
   */
  label: string;
  /**
   * Specifies whether the button link element is disabled.
   *
   * @vegaVersion 1.3.0
   */
  disabled: boolean;
  /**
   * Indicates the danger status of the button link,
   *    typically used for destructive actions.
   *
   * @vegaVersion 1.3.0
   */
  danger: boolean;
  /**
   * Specifies whether the button link will emit a vegaClick event when clicked.
   *    When set to true, the component behaves as a link but also triggers the click event when clicked,
   *    allowing both navigation and custom click handling.
   *
   * @vegaVersion 1.3.0
   */
  eventful: boolean;
  /**
   * Specifies the location where the linked document will be opened,
   *    helping users understand how the link will behave when activated.
   *
   * @vegaVersion 2.33.0
   */
  target: VegaButtonLinkTarget;
  /**
   * An event emitter notifying the click event of the button.
   *
   * @vegaVersion 1.0.11
   */
  vegaClick: EventEmitter;
  /**
   * An event emitter notifying the click event of the button.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  click: EventEmitter;
  componentWillLoad(): void;
  render(): VegaButtonLink;
  private hasIconButton;
  private onClick;
  private renderContent;
  private getGapByButtonSize;
  private renderLabel;
  private renderIcon;
  private renderVegaIcon;
  private isButton;
}
