import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaAppHeaderButton } from '../../vega-app-header-button';
/**
 * Renderer class for the Vega App Header Button Dropdown.
 * This class extends the VegaSlimmer and is responsible for rendering the dropdown component and managing its state and events.
 */
export declare class VegaAppHeaderButtonDropdownRenderer extends VegaSlimmer {
  protected host: VegaAppHeaderButton['host'];
  protected dropdown: VegaAppHeaderButton['dropdown'];
  protected isDropdownShow: VegaAppHeaderButton['isDropdownShow'];
  protected dropdownEventPrevent: VegaAppHeaderButton['dropdownEventPrevent'];
  protected dropdownClickEventEmitter: VegaAppHeaderButton['dropdownClickEventEmitter'];
  protected resetEventEmitter: VegaAppHeaderButton['resetEventEmitter'];
  protected searchEventEmitter: VegaAppHeaderButton['searchEventEmitter'];
  private dropdownRef;
  private itemsSlotRef;
  private isTemplateMode;
  connectedCallback(): void;
  /**
   * The function appends host items to a dropdown element.
   */
  appendHostItemsToDropdown(): void;
  /**
   * Determines if the dropdown should be rendered based on the presence of the dropdown configuration.
   *
   * @returns {boolean} True if the dropdown configuration is present, otherwise false.
   */
  shouldRenderDropdown(): boolean;
  getDropdownRef(): HTMLVegaDropdownElement;
  /**
   * Renders the dropdown component with the provided children.
   *
   * @param {HTMLElement} children HTML element children to be rendered inside the dropdown.
   * @returns {HTMLElement} The rendered dropdown component.
   */
  render(children: HTMLElement): HTMLElement;
  /**
   * Renders the items slot.
   *
   * @returns {Nullable<HTMLElement>} The rendered items slot.
   */
  private renderItemsSlot;
  /**
   * emit dropdown click event when component get dropdown item click
   *
   * @param {NotifyObserverPayload<string>} input the click detail
   */
  private triggerDropdownClickEvent;
  /**
   * emit dropdown reset event when component get dropdown selected items reset
   *
   * @param {NotifyObserverPayload<string>} input the reset detail
   */
  private triggerResetEvent;
  /**
   * emit dropdown search event when component receives a search input from the dropdown,
   * but only if `useDefaultFilter` is set to `false`.
   *
   * @param {NotifyObserverPayload<string>} input the search detail
   */
  private triggerSearchEvent;
  /**
   * Shows the dropdown component.
   */
  private onDropdownShow;
  /**
   * Hides the dropdown component.
   */
  private onDropdownHide;
  /**
   * Checks if the dropdown has items.
   *
   * @returns {boolean} True if the dropdown has items, otherwise false.
   */
  private hasSlotItems;
}
