import { IOption } from "../ez-combo-box";
export declare class EzComboBoxList {
  private _optionsList;
  private _listWrapper;
  private i18n;
  /**
  * Indica se o indicador de carregamento deve ser exibido.
  *
  * @tipo {boolean}
  */
  showLoading: boolean;
  /**
   * Lista de opções visíveis que serão exibidas no componente.
   *
   * @tipo {Array<IOption>}
   */
  visibleOptions: Array<IOption>;
  /**
   * Mensagem exibida quando a lista de opções está vazia.
   *
   * @padrão "Nenhum resultado encontrado"
   * @tipo {string}
   */
  textEmptyList: string;
  /**
   * Indica se o valor de cada opção deve ser exibido junto com o rótulo.
   *
   * @tipo {boolean}
   */
  showOptionValue: boolean;
  /**
   * Índice da opção pré-selecionada na lista.
   *
   * @tipo {number}
   */
  preSelection: number;
  /**
   * Largura máxima da lista, em pixels.
   *
   * @tipo {number}
   */
  maxWidth: number;
  /**
   * Largura fixa da lista, em pixels.
   *
   * @tipo {number}
   */
  width: number;
  /**
   * Callback chamado quando uma opção é selecionada.
   *
   * @param option A opção selecionada.
   * @tipo {(option: IOption) => void}
   */
  onOptionSelect: (option: IOption) => void;
  /**
   * Callback chamado quando o mouse passa sobre uma opção.
   *
   * @param index O índice da opção em foco.
   * @tipo {(index: number) => void}
   */
  onOptionHover: (index: number) => void;
  /**
   * Move a seleção para a próxima opção na lista.
   */
  nextOption(): Promise<void>;
  /**
   * Move a seleção para a opção anterior na lista, sem ultrapassar o início.
   */
  previousOption(): Promise<void>;
  /**
   * Seleciona a opção atualmente pré-selecionada.
   */
  selectCurrentOption(): Promise<void>;
  /**
   * Observa mudanças na propriedade `width` e ajusta a largura da lista.
   *
   * @param newValue O novo valor da largura.
   * @param oldValue O valor anterior da largura.
   */
  observeWidth(newValue: number, oldValue: number): void;
  /**
   * Observa mudanças na propriedade `maxWidth` e ajusta a largura máxima da lista.
   *
   * @param newValue O novo valor da largura máxima.
   * @param oldValue O valor anterior da largura máxima.
   */
  observeMaxWidth(newValue: number, oldValue: number): void;
  /**
   * Gerencia a navegação por teclado na lista do combo box.
   *
   * - `ArrowDown`: Move para a próxima opção.
   * - `ArrowUp`: Move para a opção anterior.
   * - `Enter`: Seleciona a opção atual.
   * - `Escape`: Limpa a pré-seleção.
   *
   * @param event O evento de teclado.
   */
  handleKeyDown(event: KeyboardEvent): void;
  private buildItem;
  private scrollToOption;
  componentWillLoad(): Promise<void>;
  componentDidLoad(): void;
  componentDidRender(): void;
  render(): any;
}
