import { EventEmitter } from '../../stencil-public-runtime';
/** Option list item for the bs-dropdown component. Should be used as a child
 * of the bs-dropdown-options component. Some of the props are **Parent-Provided**
 * (provided by the parent component) and are not o be given by users. All events
 * that this component emits are handled by the parent component and do not need to be listened for.
 *
 * When using variant of 2-col and/or description, all slotted children should
 * be wrapped in a single outer <div>.
 *
 * @docsPage
 * @exSlot Apples
 */
export declare class BsDropdownOption {
  /** Value of this option.
   * @ex apples
   */
  value: string;
  /** Variant of this option. This can be any combination of values "2-col",
   * "description", "negative" separated by a space.  When using "2-col" or
   * "description" variants, each child of the <li> should be in some kind of
   * container element such as <span>.
   */
  variant?: string;
  /** Whether this option is selected. */
  selected: boolean;
  /** [Parent-Provided] - Whether the dropdown is currently shown. */
  shown?: boolean;
  /** [Parent-Provided] - Whether this options is currently focused. */
  focused?: boolean;
  /** [Parent-Provided] - The index of this option in the options list. */
  index: number;
  /** [Parent-Provided] - The ID of the containing dropdown */
  dropdownId: string;
  /** [Parent-Handled] - Emits when the mouse hovers this option */
  mousefocus: EventEmitter<number>;
  /** [Parent-Handled] - Emits when this option is selected */
  optionselect: EventEmitter<{
    id: string;
    index: number;
    value: string;
  }>;
  option: HTMLLIElement;
  /** Handle focusing on initial load. */
  componentDidLoad(): void;
  /** Handle focusing/blurring when the prop changes. */
  onFocusChange(newVal: boolean): void;
  /** Handle various keyboard events for an option. */
  handleKeyDown(ev: KeyboardEvent): void;
  /** Handle mouse entering an option by notifying the parent. */
  handleMouseEnter(): void;
  /** Handle clicking on an option. */
  handleSelect(): void;
  /** Generate an ID for this option. */
  get id(): string;
  render(): any;
}
