import { EventEmitter } from '../../stencil-public-runtime';
import { IDropdownItem, IDropdownSubAction } from './structure/DropdownItem';
export declare class EzDropdown {
  private _itemList;
  private _submenuList;
  private _openedMenuList;
  private _submenuControl;
  /**
   * Limitador de níveis de menu + submenu.
   * Valor 0, null ou undefined desativa o limitador.
   */
  private _levelLimits;
  private _element;
  /**
  * Lista de itens que vão ser apresentados no dropdown.
  */
  items: Array<IDropdownItem>;
  /**
  * Último item que recebeu o click.
  */
  value: IDropdownItem;
  /**
   * Função builder que possibilita alterar como o item da lista vai ser apresentado.
   * Observação: No react ele se transforma em VNode e não como HTMLElement.
  */
  itemBuilder: (item: IDropdownItem, level: number) => HTMLElement | string;
  /**
   * Emitido quando ocorrer um click em um item da lista,
   * o IDropdownItem que recebeu o click deve ser enviado como data do evento.
   */
  ezClick: EventEmitter<IDropdownItem>;
  /**
   * Emitido quando ocorrer um click em uma ação secundaria do item,
   * o IDropdownSubAction deve ser enviado como data do evento.
   */
  ezSubActionClick: EventEmitter<IDropdownSubAction>;
  /**
   * Emitido quando ocorrer um click fora do componente.
   */
  ezOutsideClick: EventEmitter<void>;
  /**
   * Emitido quando ocorrer o ponteiro do mouse é colocado sobre um item.
   */
  ezHover: EventEmitter<IDropdownItem>;
  handleClickOutside(event: MouseEvent): void;
  private defaultItemBuilder;
  private getMaxOrder;
  private hasIcon;
  private hasGroup;
  private hasChildren;
  private isLockedLevels;
  private getItemsByGroup;
  private validateItem;
  private getContainerItemBuilder;
  private getItemsRender;
  private renderDropdown;
  private hasOpenedSubmenu;
  private hasSubmenuOpened;
  private setEvents;
  private onShowSubmenu;
  private onItemClick;
  private onSubActionClick;
  private onHideAllSubmenu;
  private onSubmenuReposition;
  componentDidLoad(): void;
  componentDidUpdate(): void;
  componentDidRender(): void;
  render(): any;
}
