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 { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
import { LabelSuffixButtonConfig, LabelSuffixButtonProps } from './types';
import { VegaFieldLabelSuffixElementRenderer } from './slimmers/renderers/vega-field-label-suffix-element-renderer';
import { Nullable } from '../../types/general';
/**
 * @vegaVersion 1.10.0
 */
export declare class VegaFieldLabel {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected clickEventEmitter: EventEmitSlimmerBase;
  protected suffixButtonClickEventEmitter: EventEmitSlimmerBase;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaFieldLabelElement>;
  protected suffixElementRenderer: VegaFieldLabelSuffixElementRenderer;
  host: HTMLVegaFieldLabelElement;
  /**
   * @deprecated Please use `suffixButtonConfig` instead
   *
   * Specifies the properties for the suffix button associated with the input.
   *
   * It provides essential information and functionality related to
   *    the suffix button's role and behavior.
   *
   * @vegaVersion 2.25.0
   */
  suffixButtonProps: LabelSuffixButtonProps;
  /**
   * Specifies the properties for the suffix button associated with the input.
   *
   * It provides essential information and functionality related to
   *    the suffix button's role and behavior.
   *
   * @vegaVersion 2.68.0
   */
  suffixButtonConfig: Nullable<LabelSuffixButtonConfig>;
  /**
   * Specifies the label or title for the field.
   *
   * It provides descriptive text that helps identify the
   *    purpose or content expected in the field.
   *
   * @vegaVersion 1.10.0
   */
  label: string;
  /**
   * Determines whether the input field is required.
   *
   * Specifies whether the field must be filled in to pass form validation.
   *
   * @vegaVersion 1.10.0
   */
  isFieldRequired: boolean;
  /**
   * Specifies whether the field is disabled.
   *
   * @vegaVersion 1.10.0
   */
  disabled: boolean;
  /**
   * An event emitter notifying that the field label has been clicked.
   *
   * @vegaVersion 1.43.0
   */
  vegaClick: EventEmitter;
  /**
   * An event emitter notifying that the suffix button associated with the field label has been clicked.
   *
   * @vegaVersion 2.25.0
   */
  vegaLabelButtonClick: EventEmitter;
  /**
   * An event emitter notifying that the suffix button associated with the field label has been clicked.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.25.0
   */
  labelButtonClick: EventEmitter;
  componentWillLoad(): void;
  render(): VegaFieldLabel;
  private handleClick;
}
