import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaInputRange } from '../../vega-input-range';
import { InputRangeValueType, RangeInputIndexType } from '../../types';
/** The `VegaInputRangeValueController` class in TypeScript manages the value and events of an input range component. */
export declare class VegaInputRangeValueController extends VegaSlimmer {
  protected value: VegaInputRange['value'];
  protected host: VegaInputRange['host'];
  protected changeEventEmitter: VegaInputRange['changeEventEmitter'];
  /**
   * This function emits an event and notifies after a value change if the new value is different from the old value.
   *
   * @param {InputRangeValueType} newValue - The `newValue` parameter represents the new value of an input range element.
   * @param {InputRangeValueType} oldValue - The `oldValue` parameter represents the previous value of an input range element before it was changed.
   */
  emitEventAndNotifyAfterValueChange(newValue: InputRangeValueType, oldValue: InputRangeValueType): void;
  /**
   * The function `updateValueByRangeIndex` updates the value of an array based on the specified index.
   *
   * @param {string} itemValue - The `itemValue` parameter is a string representing the value that will be updated in the range input.
   * @param {RangeInputIndexType} index - The `index` parameter in the `updateValueByRangeIndex` function is used to determine which element in the array `this.value` should be updated.
   */
  updateValueByRangeIndex(itemValue: string, index: RangeInputIndexType): void;
  /**
   * The function `setValue` sets the value of an input range component in TypeScript.
   *
   * @param {InputRangeValueType} value - The `value` parameter in the `setValue` method is of type `InputRangeValueType`.
   */
  setValue(value: InputRangeValueType): void;
  /**
   * The function `valueGuard` checks if the input value is an array with exactly two elements, where each element is either a string or a number.
   *
   * @param {InputRangeValueType} value - The `value` parameter is expected to be an array with a length
   * of 2, where each element in the array is either a string or a number. The `valueGuard` function
   * returns `true` if these conditions are met, and `false` otherwise.
   * @returns {boolean} The `valueGuard` function is returning a boolean value. It checks if the `value` parameter
   * is an array with a length of 2, and if every item in the array is either a string or a number. If
   * these conditions are met, the function returns `true`, otherwise it returns `false`.
   */
  private valueGuard;
}
