import { Placement } from '@popperjs/core';
/**
 * @slot toggle - an element to use to toggle the dropdown visibility
 * @slot default - the dropdown content
 */
export declare class BsDropdown {
  /**
   * where the dropdown should appear (see: https://popper.js.org/docs/v2/constructors/#options)
   */
  placement: Placement;
  /**
   * used to control the dropdown visiblity manually, rather than relying on toggle clicks
   */
  show: boolean;
  /**
   * if true, toggle will automatically have a caret added to represent where the dropdown will appear
   */
  caret: boolean;
  /**
   * the caret and button content will be split, and the dropdown will show up only when clicking the caret
   */
  split: boolean;
  /**
   * whether to close the dropdown when clicking outside of it
   */
  hideOnClickOutside: boolean;
  /**
   * internal visiblity of the dropdown
   */
  _visible: boolean;
  /**
   * the direction the caret will point
   */
  _caretPosition: string;
  el: HTMLElement;
  private _toggle;
  private _menu;
  private _popper;
  private _ariaToggleLabel;
  /**
   * sets up the initial state of the dropdown
   */
  componentDidLoad(): void;
  /**
   * if placement changes after the dropdown is initialized, change the placement option used in Popper.js
   */
  updateDropdownOptions(): void;
  /**
   * allows external access to showing/hiding the dropdown
   * @param show
   */
  showChanged(show: any): void;
  /**
   * A method exposed on bs-dropdown elements to show the dropdown
   *
   * example: document.querySelector('bs-dropdown').showDropdown()
   */
  showDropdown(): Promise<void>;
  /**
   * A method exposed on bs-dropdown elements to hide the dropdown
   *
   * example: document.querySelector('bs-dropdown').hideDropdown()
   */
  hideDropdown(): Promise<void>;
  /**
   * A method exposed on bs-dropdown elements to toggle the dropdowns visibility
   *
   * example: document.querySelector('bs-dropdown').toggleDropdown()
   */
  toggleDropdown(): Promise<void>;
  /**
   * On user click outside of the component, close the dropdown
   */
  hideDropdownOnClickOutside(): Promise<void>;
  /**
   * make sure default slot items have the right Bootstrap class for rendering
   */
  slotItemsToDropdownItems(slot: any): void;
  /**
   * make sure toggle item has the caret class if needed
   */
  addCaretToToggleItems(): void;
  /**
   * creates a new Popper instance
   */
  private initializeDropdown;
  /**
   * adds pointer events to the toggle element
   */
  private addToggleEvents;
  /**
   * The caret position is simple: either top, right, bottom, or left.
   * Popper has finely detailed control over the dropdown, so we need to convert it's position to caret position
   */
  private setCaretPosition;
  /**
   * the toggle element could either be the button in the toggle slot or the last button in the toggle slot if using a button group
   */
  private getToggleElement;
  render(): any;
}
