import { EventEmitter } from "../../stencil-public-runtime";
import { VNode } from "../../stencil-public-runtime";
import { PopperPlacement, OverlayPositioning } from "../../utils/popper";
import { Placement } from "@popperjs/core";
import { Scale } from "../interfaces";
/**
 * @slot - A slot for adding `calcite-action`s.
 * @slot tooltip - a slot for adding an tooltip for the menu.
 */
export declare class CalciteActionMenu {
  connectedCallback(): void;
  disconnectedCallback(): void;
  /**
   * Indicates whether widget is expanded.
   */
  expanded: boolean;
  expandedHandler(): void;
  /**
   * Defines the available placements that can be used when a flip occurs.
   */
  flipPlacements?: Placement[];
  /**
   *  Text string for the actions menu.
   */
  label: string;
  /**
   * Opens the action menu.
   */
  open: boolean;
  openHandler(open: boolean): void;
  /** Describes the type of positioning to use for the overlaid content. If your element is in a fixed container, use the 'fixed' value. */
  overlayPositioning: OverlayPositioning;
  /**
   * Determines where the component will be positioned relative to the referenceElement.
   */
  placement: PopperPlacement;
  /**
   * Specifies the size of the action.
   */
  scale: Scale;
  /**
   * Emitted when the open property has changed.
   */
  calciteActionMenuOpenChange: EventEmitter;
  closeCalciteActionMenuOnClick(event: Event): void;
  el: HTMLCalciteActionMenuElement;
  menuFocusTimeout: number;
  menuButtonEl: HTMLCalciteActionElement;
  menuEl: HTMLDivElement;
  actionElements: HTMLCalciteActionElement[];
  mutationObserver: MutationObserver;
  guid: string;
  menuId: string;
  menuButtonId: string;
  activeMenuItemIndex: number;
  activeMenuItemIndexHandler(): void;
  setFocus(): Promise<void>;
  renderMenuButton(): VNode;
  renderMenuItems(): VNode;
  render(): VNode;
  handleCalciteActionClick: () => void;
  menuButtonClick: () => void;
  setTooltipReferenceElement: () => void;
  setMenuButtonRef: (node: HTMLCalciteActionElement) => void;
  updateAction: (action: HTMLCalciteActionElement, index: number) => void;
  updateActions: (actions: HTMLCalciteActionElement[]) => void;
  getAssignedElements(): HTMLElement[];
  getActions: () => void;
  isValidKey(key: string, supportedKeys: string[]): boolean;
  menuButtonKeyUp: (event: KeyboardEvent) => void;
  menuButtonKeyDown: (event: KeyboardEvent) => void;
  menuActionsContainerKeyDown: (event: KeyboardEvent) => void;
  menuActionsContainerKeyUp: (event: KeyboardEvent) => void;
  handleActionNavigation: (key: string, actions: HTMLCalciteActionElement[]) => void;
  toggleOpen: (value?: boolean) => void;
}
