import { EventEmitter } from "../../stencil-public-runtime";
import { DropdownItem } from '../dropdown-item/dropdown-item';
export declare class IbkDropdown {
  /** Referencia del web component */
  host: HTMLElement;
  /** Texto de ayuda encima del dropdown */
  label: string;
  /** Se incluye el subtitulo entre el label (si existiera) y el dropdown */
  subtitle: string;
  /** Texto de ayuda dentro del campo seleccionable del dropdown */
  placeholder: string;
  /** Se mostrará un mensaje de error */
  error: boolean;
  /** Cuando se encuentra dentro de un "ibk-form" al hacer submit si el dropdown se encuentra vacío, mostrará un mensaje de error */
  required: boolean;
  /** Personaliza el mensaje de campo requerido */
  requiredMessage: string;
  /** Se agregará un campo de texto al abrir el dropdown donde se podrá ingresar texto y filtrar entre los elementos del dropdown */
  searcher: boolean;
  /** Se agregará un placeholder personalizado al input de busqueda */
  searcherPlaceholder: string;
  /** El dropdown no se podrá seleccionar */
  disabled: boolean;
  /** El botón que desplegará el dropdown será el ícono especificado, se puede combinar con un texto */
  triggerIcon: string;
  /** Define el color del ícono especificado */
  triggerIconColor: string;
  /** El botón que desplegará el dropdown será un texto, se puede combinar con un ícono */
  triggerText: string;
  /** Define el color del texto especificado */
  triggerTextColor: string;
  /** Define si al seleccionar un item de la lista, este se mantendrá marcado */
  keepMarked: boolean;
  /** Define un ancho fijo para el dropdown */
  width: number;
  /** Define si el dropdown no contará con manejo de errores. Se omitirá el espacio generado para el mensaje de error */
  noHandlingError: boolean;
  /** Emite un evento cuando se selecciona un item y lo envía como parámetro */
  onchange: EventEmitter<DropdownItem>;
  /** Estado que determina si el dropdown se encuentra abierto */
  _open: boolean;
  /** Almacena el elemento al ser seleccionado */
  _selectedItem: DropdownItem;
  /** Se mostrará el botón para borrar el contenido al escribir en el buscador */
  _cleared: boolean;
  /** El dispositivo es un móvil */
  _mobileDevice: boolean;
  /** Almacena el "ibk-form-group" que lo contiene si existiera */
  _grouper: HTMLElement;
  componentDidLoad(): void;
  componentWillLoad(): void;
  /** Determina si el componente se está ejecutando en un dispositivo móvil */
  checkDeviceMobile: () => void;
  /** Configura la clase del componente basado en estados y modificadores */
  containerClass: () => string;
  /** Abre o cierra el dropdown dependiendo del estado actual */
  dropdownHandler: (e: any) => void;
  /** Cierra el dropdown al hacer click fuera del mismo */
  bodyClick: () => void;
  /** Validar si existe algún item pre seleccionado */
  setPreselected: () => void;
  /** Escucha el evento al seleccionar algún item del dropdown */
  listenSlottedEvents: () => void;
  /** Al escribir en el buscador, filtrará entre las opciones */
  searchOption: (e: any) => void;
  /** Elimina el contenido del buscador */
  clearSearcher: () => void;
  /** Muestra todas las opciones que se ocultaron al filtrar usando el buscador */
  showAllOptions: () => void;
  /** Usando las flechas de navegación se preselecciona una opcion */
  optionsNavigate(e: any): void;
  /** Verifica que el item preseleccionado se encuentre dentro del espacio visible del scrollbar */
  moveScrollToSelection: (preselected: HTMLElement, moveTo: 'down' | 'up') => void;
  /** Elimina la preseleccion al hacer focus en el buscador */
  deletePreselected: () => void;
  /** Si el dispositivo es mobile, tomará los "ibk-dropdown-items" y los convertirá en "option" */
  mobileOptions: () => Array<HTMLElement>;
  render(): any;
}
