import { EventEmitter } from '../../stencil-public-runtime';
import { ItemToggleStatusMap } from './types';
import { EventEmitSlimmerBase } from '../../helpers/event-manager/slimmers/event-emit-slimmer';
import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core';
import { DeprecatedPropertySlimmerBase } from '../../helpers/slimmers/deprecated-property-slimmer';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
/**
 * @vegaVersion 1.0.5
 */
export declare class VegaItemToggle {
  private static defaultStatusMap;
  protected readonly globalSlimmers: GlobalSlimmers;
  protected toggleStatusEventEmitter: EventEmitSlimmerBase;
  protected readonly deprecatedPropertySlimmer: DeprecatedPropertySlimmerBase<ItemToggleStatusMap>;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaItemToggleElement>;
  host: HTMLVegaItemToggleElement;
  toggleItemStatus: 'unToggled' | 'toggling' | 'toggled' | 'unToggling';
  /**
   * Defines the labels and icons associated with the toggle states.
   * @deprecated This property will be removed soon and replaced by prop statusMap
   *
   * @vegaVersion 1.3.0
   * @defaultValue {unToggledIcon: 'plus-sign', toggledIcon: 'delete-bin', unToggledLabel: 'Add', togglingLabel: 'Added', toggledLabel: 'Remove', unTogglingLabel: 'Removed'}
   */
  itemToggleStatusMap: ItemToggleStatusMap;
  /**
   * Defines the labels and icons associated with the toggle states.
   *
   * @vegaVersion 2.2.0
   * @defaultValue {unToggledIcon: 'plus-sign', toggledIcon: 'delete-bin', unToggledLabel: 'Add', togglingLabel: 'Added', toggledLabel: 'Remove', unTogglingLabel: 'Removed'}
   */
  statusMap: ItemToggleStatusMap;
  /**
   * Determines whether the item is toggled on.
   *
   * @vegaVersion 1.3.0
   */
  isToggled: boolean;
  onToggledPropsChange(): void;
  /**
   * An event emitter notifying an item toggle event.
   *
   * @vegaVersion 1.3.0
   */
  vegaToggleStatus: EventEmitter<boolean>;
  /**
   * An event emitter notifying an item toggle event.
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  toggleStatus: EventEmitter<boolean>;
  componentWillLoad(): void;
  render(): VegaItemToggle;
  private renderLabelDom;
  private handleToggle;
  private isTogglingOrUnToggling;
  private updateToggleStatus;
  private updateTransitionStatus;
}
