import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaDropdown } from '../../vega-dropdown';
import { MutationObserverSlimmer } from '../../../../helpers/slimmers/mutation-observer/mutation-observer-slimmer';
/**
 * The controller for the table children components.
 */
export declare class VegaDropdownChildrenController extends VegaSlimmer {
  host: VegaDropdown['host'];
  source: VegaDropdown['source'];
  sourceController: VegaDropdown['sourceController'];
  renderModeController: VegaDropdown['renderModeController'];
  listRenderer: VegaDropdown['listRenderer'];
  renderer: VegaDropdown['renderer'];
  selectedController: VegaDropdown['selectedController'];
  protected mutationObserver: MutationObserverSlimmer;
  private labelSet;
  private keySet;
  /**
   * Component lifecycle - [disconnectedCallback]
   */
  disconnectedCallback(): void;
  /**
   * Component lifecycle - [componentWillLoad]
   */
  componentWillLoad(): void;
  /**
   * Component lifecycle - [componentDidLoad]
   */
  componentDidLoad(): void;
  /**
   * The function "watchSource" synchronizes the dropdown current data.
   */
  watchSource(): void;
  /**
   * The function checks if a given label exists in a label set.
   *
   * @param {string} label - A string representing the label to check if it exists.
   * @returns {boolean} A boolean value is being returned.
   */
  isLabelExist(label: string): boolean;
  /**
   * The function checks if a given key exists in a set.
   *
   * @param {string} key - A string representing the key to check if it exists in the keySet.
   * @returns {boolean} A boolean value indicating whether the given key exists in the keySet.
   */
  isKeyExist(key: string): boolean;
  /**
   * The function syncs up the current data of a dropdown based on the render mode.
   */
  private syncUpDropdownCurrentData;
  /**
   * The `syncUpDropdownCurrentDataBySlot` method is responsible for
   * synchronizing the current data in a dropdown based on the items present in the slot.
   */
  private collectKeyAndLabelFromSlot;
  /**
   * The function collects unique labels and keys from a nested array of objects.
   *
   * @param {VegaDropdownSourceItem[]} items - An array of objects representing dropdown source items.
   * Each object should have a "label" property representing the label of the dropdown option, and a
   * "key" property representing the value of the dropdown option. Additionally, each object can have a
   * "children" property which is an array of nested dropdown source items
   */
  private collectKeyAndLabelFromSource;
  /**
   * The below method is e2e-test covered in @see{module:vega-dropdown-items-dom-change-e2e}
   */
  private clearDropdownCurrentData;
  /**
   * The function `notifyTemplateItemsChange` notifies changes to dropdown items within a container element.
   */
  private notifyTemplateItemsChange;
}
