import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaInputPasscode } from '../../vega-input-passcode';
/**
 * Input passcode value controller
 */
export declare class VegaInputPasscodeValueController extends VegaSlimmer {
  protected host: VegaInputPasscode['host'];
  protected value: VegaInputPasscode['value'];
  protected vegaInputValues: VegaInputPasscode['vegaInputValues'];
  protected length: VegaInputPasscode['length'];
  protected inputType: VegaInputPasscode['inputType'];
  protected inputPasscodeRenderer: VegaInputPasscode['inputPasscodeRenderer'];
  protected changeEventEmitter: VegaInputPasscode['changeEventEmitter'];
  protected completeEventEmitter: VegaInputPasscode['completeEventEmitter'];
  /** initialize input values on load */
  componentWillLoad(): void;
  /**
   * The `watchValue` function emits a change event with the current value and notifies the
   * `ChangeManager` about a form element value change.
   */
  watchValue(): void;
  /**
   * Synchronizes the rendered input elements with the controller's internal passcode values.
   */
  watchVegaInputValues(): void;
  /**
   * initialize input values
   *
   * @param {string} value - the value to be initialized
   */
  setValuesArray(value: string): void;
  /**
   * Filters an input value according to the controller's input type.
   *
   * @param {string} value - The raw input string to validate and filter.
   * @returns {string} - The filtered string: white space free in text type, or digits-only otherwise.
   */
  valueValidationFilter(value: string): string;
  /**
   * Searches through the input values and returns the index
   * of the first empty input.
   * Returns -1 if all inputs are filled.
   *
   * @returns {number} - the index of the first empty input field
   */
  getFirstEmptyIndex(): number;
}
