import { EventEmitter } from '../../stencil-public-runtime';
import { EventEmitSlimmerBase } from '../../helpers/event-manager/slimmers/event-emit-slimmer';
import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
import { FormFieldValidationRule } from '../../helpers/validator/rules/form-field-validation-rule';
import { FormFieldControllerSlimmer } from '../../helpers/slimmers/form-field-controller-slimmer';
/**
 * @vegaVersion 1.3.0
 */
export declare class VegaToggleSwitch {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaToggleSwitchElement>;
  protected readonly formFieldController: FormFieldControllerSlimmer<boolean>;
  protected changeEventEmitter: EventEmitSlimmerBase;
  private toggleSwitchContainer;
  host: HTMLVegaToggleSwitchElement;
  /**
   * Specifies whether the toggle switch is in the checked state.
   *
   * @vegaVersion 1.3.0
   */
  checked: boolean;
  watchCheckedChange(): void;
  /**
   * The `value` property returns `true` when the toggle switch is checked, and `false` when it is unchecked.
   * This property is included for form control compatibility and can be used interchangeably with the checked property.
   *
   * @vegaVersion 2.25.0
   */
  value: boolean;
  watchValue(newValue: boolean): void;
  /**
   * Specifies the size of the toggle switch.
   *
   * @vegaVersion 1.3.0
   */
  size: 'default' | 'small';
  /**
   * Specifies the label or title for the toggle switch.
   *
   * @vegaVersion 1.3.0
   */
  label: string;
  /**
   * Specifies whether the toggle switch must be checked
   *    to pass form validation.
   *
   * @vegaVersion 2.25.0
   */
  required: boolean;
  /**
   * Specifies whether the toggle switch is disabled.
   *
   * @vegaVersion 1.3.0
   */
  disabled: boolean;
  /**
   * Defines custom validation rules for the toggle switch.
   *
   * @vegaVersion 2.25.0
   */
  validationRules: FormFieldValidationRule<unknown>[];
  watchValidationRules(): void;
  /**
   * Determines whether automatic validation should be
   *    implemented for the toggle switch.
   *
   * @vegaVersion 2.25.0
   */
  autoValidation: boolean;
  /**
   * Specifies the validation status of the toggle switch.
   *
   * @vegaVersion 2.25.0
   */
  isValid: boolean;
  /**
   * An event emitter notifying changes in the toggle switch.
   *
   * @vegaVersion 1.3.0
   */
  vegaChange: EventEmitter<boolean>;
  /**
   * An event emitter notifying changes in the toggle switch.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  change: EventEmitter<boolean>;
  componentWillLoad(): void;
  render(): VegaToggleSwitch;
  private renderLabelDom;
  /**
   * The below method is e2e-test covered in
   * @see{module:vega-toggle-switch-click-on-label-e2e}
   */
  private toggleSwitch;
  /**
   * The below method is e2e-test covered in
   * @see{module:vega-toggle-switch-change}
   * @see{module:vega-toggle-switch-click-with-disabled}
   */
  private updateValue;
}
