import { EventEmitter } from "../../stencil-public-runtime";
import { SearchResult } from "../search-result/search-result";
export declare class IbkSearchbar {
  /** Referencia al componente */
  host: HTMLElement;
  /** Texto de ayuda dentro del searchbar */
  placeholder: string;
  /** Texto de ayuda encima del searchbar */
  label: string;
  /** Se incluye el subtitulo entre el label (si existiera) y el searchbar */
  subtitle: string;
  /** El searchbar no se podrá usar */
  disabled: boolean;
  /** Configura un ancho fijo para el componente */
  width: number;
  /** Define un valor predeterminado para el searchbar */
  value: string;
  /** Define si el searchbar muestra un icono de carga mientras se hace la consulta */
  loading: boolean;
  /** Define si el buscador no encontró resultados */
  empty: boolean;
  /** Define si el ícono de la lupa se mostrará a la izquierda o derecha */
  iconPosition: 'right' | 'left';
  /** El buscador mostrará un estilo con caja color verde alrededor */
  boxed: boolean;
  /** El buscador mostrará los módulos de la web de Interbank Benefit */
  benefit: boolean;
  /** Si el buscador pertenece a Interbank Benefit y no se encuentran resultados, se mostrará la opción de redirigir a Shopstar */
  shopstarRedirect: boolean;
  /** Emite un evento cuando el searchbar contenga 3 caracteres para realizar la búsqueda */
  onsearch: EventEmitter<any>;
  /** Emite un evento al escribir */
  onedit: EventEmitter<string>;
  /** Emite un evento cuando se selecciona uno de los resultados, enviando un objeto con los datos del resultado */
  onselect: EventEmitter<SearchResult>;
  /** Emite un evento cuando se selecciona alguno de los botones de Interbank Benefit, envía como dato el id del módulo */
  onbenefitclick: EventEmitter<number>;
  /** Almacena el estado del cuadro de resultados, cuando está abierto o cerrado */
  _open: boolean;
  /** Estado activo o inactivo del searchbar */
  _focus: boolean;
  /** Define cuando los resultados de búsqueda han sido encontrados y estan listos para ser procesados */
  _readyData: boolean;
  /** Almacena los resultados iniciales al hacer la búsqueda por los 3 primeros caracteres */
  _htmlResults: NodeList;
  /** Almacena la última búsqueda (3 caractéres) */
  private _lastSearched;
  /** Almacena todos los resultados de la búsqueda en un objeto */
  private _resultData;
  /** Almacena la información filtrada en base a los criterios de búsqueda */
  private _filteredData;
  /** Envía el id del módulo de benefit seleccionado en caso el buscador cuente con la propiedad "benefit" */
  private _benefitModule;
  /** Almacena un observador de resultados */
  private _observer;
  componentDidLoad(): void;
  componentWillLoad(): void;
  /** Configura la clase del componente basado en estados y modificadores */
  containerClass(): string;
  onSearchbarFocusIn(): void;
  onSearchbarFocusOut(): void;
  bodyClick(): void;
  onNavigate(e: any): void;
  /** Navega entre los resultados al usar las flechas del teclado */
  navigate: (keyCode: number) => void;
  /** Escucha el evento click sobre alguno de los resultados */
  listenResultClick: () => void;
  /** Función que se ejecuta al escribir en el searchbar */
  search: (e: any) => void;
  observerCallback: () => void;
  /** Agrega a un objeto global cada resultado encontrado en base a los 3 primeros caracteres */
  createObjectFromResult: () => void;
  /** Actualiza el objeto mientras el usuario ingresa más de 3 caracteres */
  updateResults: () => void;
  /** Renderiza los resultados en la vista en base al filtro y ordenamiento */
  renderFilteredResults: () => void;
  /** Resalta la coincidencia de la búsqueda y el resultado */
  highlightMatch: (label: string, startMatch: number, endMatch: number) => string;
  setBenefitModule(e: CustomEvent): void;
  clear: () => void;
  render(): any;
}
