import { EventEmitter } from '../../stencil-public-runtime';
import { BalOptionValue } from '../bal-select-option/bal-select-option.type';
export declare class Select {
  private inputElement;
  private dropdownElement;
  private clearScrollToValue;
  element: HTMLElement;
  isDropdownOpen: boolean;
  textToScrollTo: string;
  /**
   * If `true` the filtering of the options is done outside of the component.
   */
  remote: boolean;
  /**
   * If `true` the component uses the whole width.
   */
  expanded: boolean;
  /**
   * Set this to `true` when the component is placed on a dark background.
   */
  inverted: boolean;
  /**
   * If `true` the component is diabled.
   */
  disabled: boolean;
  /**
   * If `true` the user can search by typing into the input field.
   */
  typeahead: boolean;
  /**
   * If `true` the component shows a loading spinner and sets the input to readonly.
   */
  loading: boolean;
  /**
   * Defines the placeholder of the input element.
   */
  placeholder: string;
  /**
   * Defines the height of the dropdown list.
   */
  scrollable: number;
  /**
   * Selected option value.
   */
  value: BalOptionValue<any>;
  /**
   * List of the options.
   */
  options: BalOptionValue<any>[];
  /**
   * Emitted when a option got selected.
   */
  balChange: EventEmitter<BalOptionValue<any>>;
  /**
   * Emitted when a keyboard input occurred.
   */
  balInput: EventEmitter<string>;
  /**
   * Emitted when the selection is cancelled.
   */
  balCancel: EventEmitter<void>;
  /**
   * Emitted when the input loses focus.
   */
  balBlur: EventEmitter<FocusEvent>;
  /**
   * Emitted when the input has focus.
   */
  balFocus: EventEmitter<FocusEvent>;
  /**
   * Emitted when the input got clicked.
   */
  balClick: EventEmitter<MouseEvent>;
  /**
   * Emitted when the input has focus and key from the keyboard go hit.
   */
  balKeyPress: EventEmitter<KeyboardEvent>;
  optionsChanged(): void;
  open(): Promise<void>;
  close(): Promise<void>;
  /**
   *
   */
  select(option: BalOptionValue<any>): Promise<void>;
  /**
   * Sets the value to null and resets the value of the input.
   */
  clear(): Promise<void>;
  setFocus(): Promise<void>;
  private onInputClick;
  private onDropdownChange;
  private onInput;
  private updateOptionProps;
  private compareForFilter;
  private onKeyPress;
  private scrollToText;
  private get childOptions();
  render(): any;
}
