import { EventEmitter } from '../../stencil-public-runtime';
import { IOption } from './interfaces/IOption';
import { OptionsSetFocus } from '../ez-classic-input/interfaces/optionsSetFocus';
export declare class EzClassicComboBox {
  _element: HTMLElement;
  private _inputElem?;
  private _popoverElem?;
  private _listElem?;
  private _keyboardManager;
  popoverVisible: boolean;
  hasSlotContent: boolean;
  highlightedIndex: number;
  filteredOptions: Array<IOption>;
  inputValue: string;
  /** Valor do combo box. */
  value?: IOption;
  /** Texto do label exibido acima do combo box. */
  label?: string;
  /** Placeholder do combo box */
  placeholder?: string;
  /** Define se o combo box está habilitado. */
  enabled?: boolean;
  /** Define se o combo box é somente leitura. */
  readonly?: boolean;
  /** Nome do combo box. */
  name?: string;
  /** Estado visual do combo box: default, error, success ou warning. */
  state?: "default" | "error" | "success" | "warning";
  /** Texto de ajuda exibido abaixo do combo box. */
  helpText?: string;
  /** Nome do ícone. */
  iconName?: string;
  /** Título do ícone (tooltip). */
  titleIcon?: string;
  /** Define se o ícone é clicável */
  iconClickable?: boolean;
  /** Se true desabilita a digitação dentro do componente. */
  suppressSearch?: boolean;
  /**
   * Array com as opções do ez-classic-combo-box. Os elementos devem obedecer
   * o formato: `{value: string, label: string}`.
   */
  options: Array<IOption>;
  /**
   * Texto a ser apresentado na opção de valor nulo.
   */
  textEmptyOption: string;
  /**
   * Se true remove a opção vazia da lista.
   */
  suppressEmptyOption: boolean;
  /**
   * Evento disparado quando o valor do combo box muda.
   */
  ezChange: EventEmitter<IOption>;
  /**
   * Evento disparado quando o combo box perde o foco.
   */
  ezBlur: EventEmitter<IOption>;
  /**
   * Evento disparado quando o ícone é clicado.
   */
  iconClick: EventEmitter<void>;
  /**
   * Emitido quando acontece a alteração de estado do popover.
   */
  ezVisibilityChange: EventEmitter<boolean>;
  /**
   * Emitido quando é digitado no campo de entrada.
   */
  ezType: EventEmitter<string>;
  /**
   * Aplica o foco no campo.
   */
  setFocus(option?: OptionsSetFocus): Promise<void>;
  /**
   * Remove o foco do campo.
   */
  setBlur(): Promise<void>;
  /**
   * Exibe o popover abaixo do input.
   */
  showPopover(): Promise<void>;
  /**
   * Oculta o popover.
   */
  hidePopover(): Promise<void>;
  private compareOptionValues;
  private setEmptyValue;
  setValue(option: IOption): Promise<void>;
  optionsChanged(): Promise<void>;
  valueChanged(newValue: IOption): Promise<void>;
  private handleIconClick;
  private handleEzChange;
  private handleEzBlur;
  private filterOptions;
  private scrollToHighlightedOption;
  private selectOption;
  private handleArrowUp;
  private handleArrowDown;
  private selectCurrentItem;
  private handleVisibilityChange;
  private checkSlotContent;
  private setHighlightedIndexToValue;
  private handleDocumentClick;
  private _boundHandleDocumentClick;
  private addInfoId;
  private initKeyboardManager;
  connectedCallback(): Promise<void>;
  disconnectedCallback(): void;
  componentWillLoad(): void;
  componentDidLoad(): void;
  render(): any;
}
