import { VegaSlimmer } from '../../vega-slimmer/vega-slimmer-core';
import { FormFieldOptionForSlimmer } from './form-field-controller-slimmer';
import { FieldErrorUIControllerSlimmer } from './field-error-ui-controller-slimmer';
/**
 * The current class is used to manually control the form element error message.
 * The component `vega-field-error` is used to control the error messages for form fields. to implement the error message display, we needs to know the form field error message container, field element, and other necessary options,
 * the `form-field-controller-slimmer` has the required options and will inject to the all form fields, so we create current slimmer class and inject to the `form-field-controller-slimmer` to get all options.
 * When the property `message` of the vega-field-error component changed, the target form field will receive the special subject and update the error message.
 */
export declare class FieldErrorControllerSlimmer extends VegaSlimmer {
  host: HTMLElement;
  options: FormFieldOptionForSlimmer<unknown>;
  protected readonly fieldErrorUIController: FieldErrorUIControllerSlimmer;
  private fieldErrorMessageChangeObserver;
  /**
   * register the observer when the slimmer method called
   */
  handleComponentWillLoadByFieldErrorSlimmer(): void;
  /**
   * unregister the observer when the slimmer method called
   */
  handleUnregisterObserver(): void;
  /**
   * The function checks if the host element is the parent of the field box.
   *
   * @param {FieldErrorEventPayload} payload - The payload parameter is of type FieldErrorEventPayload.
   * @returns {boolean} a boolean value.
   */
  private canAcceptFieldErrorMessageUpdate;
  /**
   * This method called mean that the current form field element nest in a vega-field-error component and the parent component property `message` changed, we need to show or hide the error message.
   *
   * @param {FieldErrorEventPayload} payload payload param
   */
  private handleFieldErrorMessageUpdate;
}
