import { FoundationElement } from '@ni/fast-foundation'; import { ButtonAppearance, ButtonAppearanceVariant, MenuButtonPosition } from './types'; import type { ToggleButton } from '../toggle-button'; import type { ButtonPattern } from '../patterns/button/types'; import type { AnchoredRegion } from '../anchored-region'; declare global { interface HTMLElementTagNameMap { 'nimble-menu-button': MenuButton; } } /** * A nimble-styled menu button control. */ export declare class MenuButton extends FoundationElement implements ButtonPattern { appearance: ButtonAppearance; appearanceVariant: ButtonAppearanceVariant; disabled: boolean; contentHidden: boolean; tabIndex: number; /** * Specifies whether or not the menu is open. */ open: boolean; /** * Configures where the menu should be placed relative to the button that opens the menu. */ position: MenuButtonPosition; /** @internal */ readonly toggleButton?: ToggleButton; /** @internal */ readonly region?: AnchoredRegion; /** @internal */ readonly slottedMenus?: HTMLElement[]; /** * Used to maintain the internal state of whether the last menu item should be focused instead * of the first menu item the next time the menu is opened. */ private focusLastItemWhenOpened; disconnectedCallback(): void; toggleButtonChanged(_prev: ToggleButton | undefined, _next: ToggleButton | undefined): void; regionChanged(prev: AnchoredRegion | undefined, _next: AnchoredRegion | undefined): void; openChanged(_prev: boolean | undefined, _next: boolean): void; regionLoadedHandler(): void; focusoutHandler(e: FocusEvent): boolean; toggleButtonCheckedChangeHandler(e: Event): boolean; toggleButtonKeyDownHandler(e: KeyboardEvent): boolean; menuKeyDownHandler(e: KeyboardEvent): boolean; private setOpen; private getMenu; private isSlotElement; private focusMenu; private focusLastMenuItem; private readonly menuChangeHandler; } export declare const menuButtonTag = "nimble-menu-button";