import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaInput } from '../../vega-input';
/**
 * The input container has a fixed suffix that adapts based on the container size.
 * When the input container is large enough to fully display the input content, the suffix appears immediately after the input text.
 *    this is achieved by setting the input to not grow flexibly while allowing the suffix to grow.
 * If the container is too small to display all the input content, the suffix moves to the end of the container,
 *    with the input width controlled by the vega-input component.
 */
export declare class VegaInputCompactWidthController extends VegaSlimmer {
  host: VegaInput['host'];
  value: VegaInput['value'];
  placeholder: VegaInput['placeholder'];
  isCompactInputWidth: VegaInput['isCompactInputWidth'];
  suffixText: VegaInput['suffixText'];
  private calculateTextWidthContainer;
  /**
   * Component lifecycle - [componentDidLoad]
   */
  componentDidLoad(): void;
  /**
   * While value changed, we should calculate input actual width
   */
  watchValue(): void;
  /**
   *  While suffixText changed, we should calculate input actual width
   */
  watchSuffixText(): void;
  /**
   * Adjusts the width of the input based on its content and container size.
   *    while actual width of value larger than input width, we use native vega-input to controller the stretch
   *    otherwise, we should make the input container not flex grow,and the suffix flex grow.
   */
  setInputAutoWidth(): void;
  /**
   * Calculates the actual width of the text content.
   *
   * @returns {number} - The actual width of the text content.
   */
  private getActualInputWidth;
  /**
   * Creates and returns a hidden container element for calculating text width.
   *
   * @returns {HTMLElement} - calculating text width container.
   */
  private getCalculateTextWidthContainer;
}
