import { EventEmitter } from '../../stencil-public-runtime';
type ValidElement = HTMLNanoNavItemElement | HTMLNanoOptionElement | HTMLAnchorElement;
/**
 * Menus provide a list of options for the user to choose from.
 *
 * @slot - The menu's content; `nano-option`, `nano-nav-item`, `a`, `nano-content-links` elements as well as `hr` and more.
 *
 * @part base - The base element of the menu.
 *
 * @version 1.0.0
 * @status stable
 */
export declare class Menu {
    private ignoreMouseEvents;
    private ignoreMouseTimeout;
    private menu;
    private typeToSelect;
    private typeToSelectTimeout;
    private el;
    /** get the focus state of the menu @readonly */
    get hasFocus(): boolean;
    private _hasFocus;
    /** changes the role of the underlying control (required for accessibility semantics).
     * By default this will be set via the frequency of element type (e.g. `<button>` vs `<a>`) */
    type: 'menu' | 'listbox' | 'nav';
    _type: 'menu' | 'listbox' | 'nav';
    /** an accessible label */
    label: string;
    /** Emitted when the menu gains focus. */
    nanoFocus: EventEmitter;
    /** Emitted when the menu loses focus. */
    nanoBlur: EventEmitter;
    /** Emitted when a menu item is selected. */
    nanoSelect: EventEmitter<HTMLNanoOptionElement | HTMLNanoNavItemElement>;
    /** Sets focus on the menu. */
    setFocus(): Promise<void>;
    /** Removes focus from the menu. */
    removeFocus(): Promise<void>;
    /** Sets the current active item */
    showActiveElement(): Promise<void>;
    /** Removes any active item's state */
    resetActiveItem(): Promise<void>;
    get getItems(): ValidElement[];
    get activeItem(): ValidElement;
    get selectedItem(): ValidElement;
    private setActiveFocusItem;
    handleBlur(e: KeyboardEvent | MouseEvent): void;
    private handleFocus;
    private handleClick;
    private handleKeyDown;
    private handleMouseOver;
    private handleSlotContent;
    componentWillLoad(): void;
    render(): any;
}
export {};
