import type { MenuButton } from '..';
/**
 * Page object for `nimble-menu-button` component to provide consistent ways
 * of querying and interacting with the component during tests.
 *
 * This page object is intended to be used to interact with a `nimble-menu-button`,
 * not the menu slotted into the button or the menu items.
 */
export declare class MenuButtonPageObject {
    protected readonly menuButtonElement: MenuButton;
    constructor(menuButtonElement: MenuButton);
    /**
     * @returns Whether or not the menu is open.
     */
    isOpen(): boolean;
    /**
     * Opens the menu.
     * @returns A promise that resolves when the menu opens.
     */
    openMenu(): Promise<void>;
    /**
     * Closes the menu by pressing Escape.
     * Throws an error if the menu is not open.
     */
    closeMenuWithEscape(): void;
    /**
     * Gets the text in the menu button.
     * @returns The trimmed text that is slotted into the menu button.
     */
    getLabelText(): string;
    /**
     * @returns Whether or not the menu button is focused.
     */
    isFocused(): boolean;
    /**
     * @internal
     * Focuses and clicks the menu button.
     */
    clickMenuButton(): void;
    /**
     * @internal
     * Presses the Enter key on the menu button.
     */
    pressEnterKey(): void;
    /**
     * @internal
     * Presses the Space key on the menu button.
     */
    pressSpaceKey(): void;
    /**
     * @internal
     * Presses the Arrow Up key on the menu button.
     */
    pressArrowUpKey(): void;
    /**
     * @internal
     * Presses the Arrow Down key on the menu button.
     */
    pressArrowDownKey(): void;
    /**
     * @internal
     */
    getTitle(): string;
    /**
     * @internal
     */
    dispatchEvent(event: Event): void;
}
