import { EventEmitter } from '../../stencil-public-runtime';
import { VegaButtonGroupIconAlign, VegaButtonGroupSize, VegaButtonGroupVariant } from './types';
import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core';
import { SubStateNotifySlimmerBase } from '../../helpers/slimmers/sub-state/sub-state-notify-slimmer-base';
import { EventEmitSlimmerBase } from '../../helpers/event-manager/slimmers/event-emit-slimmer';
import { ChildNodesEventPreventSlimmer } from '../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer';
import { VegaButtonGroupClickController } from './slimmers/controllers/vega-button-group-click-controller';
import { VegaButtonGroupAllItemsDisabledController } from './slimmers/controllers/vega-button-group-all-items-disabled-controller';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
/**
 * @vegaVersion 2.5.0
 */
export declare class VegaButtonGroup {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected clickEventEmitter: EventEmitSlimmerBase;
  protected clickEventPrevent: ChildNodesEventPreventSlimmer;
  protected buttonGroupClickController: VegaButtonGroupClickController;
  protected readonly variantNotifySlimmer: SubStateNotifySlimmerBase;
  protected readonly sizeNotifySlimmer: SubStateNotifySlimmerBase;
  protected readonly iconAlignNotifySlimmer: SubStateNotifySlimmerBase;
  protected readonly disabledNotifySlimmer: SubStateNotifySlimmerBase;
  protected readonly allItemsDisabledNotifySlimmer: SubStateNotifySlimmerBase;
  protected allItemsDisabledController: VegaButtonGroupAllItemsDisabledController;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaButtonGroupElement>;
  private flexContainer;
  host: HTMLVegaButtonGroupElement;
  allItemsDisabled: boolean;
  watchAllItemsDisabled(): void;
  /**
   * Specifies the visual style and prominence of the button group.
   *
   * It determines how the button group will be presented to the user.
   *
   * @vegaVersion 2.5.0
   */
  variant: VegaButtonGroupVariant;
  watchVariant(): void;
  /**
   * Specifies the size of the button group.
   *
   * @vegaVersion 2.5.0
   */
  size: VegaButtonGroupSize;
  watchSize(): void;
  /**
   * Specifies the placement of the icon in relation to the button's label.
   *
   * @vegaVersion 2.5.0
   */
  iconAlign: VegaButtonGroupIconAlign;
  watchIconAlign(): void;
  /**
   * Specifies whether the button elements are disabled.
   *
   * @vegaVersion 2.72.0
   */
  disabled: boolean;
  watchDisabled(): void;
  /**
   * An event emitter notifying the click event of the button group.
   *
   * @vegaVersion 2.5.0
   */
  vegaClick: EventEmitter<string>;
  /**
   * An event emitter notifying the click event of the button.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.5.0
   */
  click: EventEmitter<string>;
  render(): VegaButtonGroup;
}
