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 { VegaRadioShowErrorController } from './slimmers/controllers/vega-radio-show-error-controller';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
/**
 * @vegaVersion 1.0.7
 */
export declare class VegaRadio {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected changeEventEmitter: EventEmitSlimmerBase;
  protected focusEventEmitter: EventEmitSlimmerBase;
  protected blurEventEmitter: EventEmitSlimmerBase;
  protected vegaRadioShowErrorController: VegaRadioShowErrorController;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaRadioElement>;
  private ariaLabel;
  private labelElement;
  private groupDisabledObserver;
  host: HTMLVegaRadioElement;
  /**
   * Indicates whether the parent radio group is disabled.
   */
  groupDisabled: boolean;
  /**
   * Indicates whether the parent radio group show error message.
   */
  showError: boolean;
  /**
   * Represents the value associated with the radio button
   *    that is currently selected or checked.
   *
   * @vegaVersion 1.0.7
   */
  value: string;
  /**
   * Assigns a common name to the input element of the radio button,
   *    to differentiate it from other buttons in a radio group.
   *
   * @vegaVersion 1.3.0
   */
  name: string;
  /**
   * Determines if the radio button is selected or checked.
   *
   * @vegaVersion 1.0.7
   */
  checked: boolean;
  watchCheckedChange(): void;
  /**
   * Determines if the radio button is disabled.
   *
   * @vegaVersion 1.3.0
   */
  disabled: boolean;
  /**
   * Specifies the size of the Radio Button component.
   *
   * The size should be selected based on the context and
   *    design requirements of the specific form.
   *
   * @vegaVersion 1.9.2
   */
  size: 'default' | 'small';
  /**
   * An event emitter notifying the focus event of the radio input.
   *
   * @vegaVersion 1.0.7
   */
  vegaFocus: EventEmitter;
  /**
   * An event emitter notifying the focus event of the radio input.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  focus: EventEmitter;
  /**
   * An event emitter notifying the blur event of the radio input.
   *
   * @vegaVersion 1.0.7
   */
  vegaBlur: EventEmitter;
  /**
   * An event emitter notifying the blur event of the radio input.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  blur: EventEmitter;
  /**
   * An event emitter notifying the change in the check status
   *    of the radio input.
   *
   * @vegaVersion 1.0.10
   */
  vegaChange: EventEmitter<boolean>;
  /**
   * An event emitter notifying the change in the check status
   *    of the radio input.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  change: EventEmitter<boolean>;
  connectedCallback(): void;
  disconnectedCallback(): void;
  componentDidLoad(): void;
  render(): VegaRadio;
  /**
   * The below method is e2e-test covered in
   * @see{module:vega-radio-change-e2e}
   */
  private updateValue;
  /**
   * The below method is e2e-test covered in
   * @see{module:vega-radio-focus-e2e}
   */
  private handleFocus;
  /**
   * The below method is e2e-test covered in
   * @see{module:vega-radio-blur-e2e}
   */
  private handleBlur;
  private handleClick;
  /**
   * indicating whether the component is disabled or not, single radio will take the self disabled value and the radio in group will take the self disabled and group disabled value
   *
   * @returns {boolean} the radio disabled or not
   */
  private isDisabled;
  /**
   * The function checks if a radio button element can accept a disabled state from a group.
   *
   * @param {GroupDisabledPayload} input - The input parameter is of type GroupDisabledPayload, which is an object containing information about a disabled radio button group.
   * @returns {boolean} a boolean value, which indicates whether the input element (this.host) is present in a group  of radio buttons (vega-radio) or not.
   */
  private canAcceptGroupDisabledObserver;
  /**
   * This function listens for changes in the disabled state of a group and updates the `groupDisabled` variable accordingly.
   *
   * @param {GroupDisabledPayload} input - The input parameter is of type GroupDisabledPayload, which is likely an object containing information about a disabled group.
   */
  private groupDisabledObserverListener;
  /**
   * This function initializes an observer for changes in the disabled state of a radio group.
   */
  private initAndRegisterGroupDisabledObserver;
  /**
   * This function unregister a group disabled observer if it exists.
   */
  private unRegisterGroupDisabledObserver;
}
