/**
 * Copyright (c) Cisco Systems, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */
import { StrategyType } from "../popover/Popover.types";
import { LitElement, PropertyValues } from "lit";
export declare enum OverlaySizes {
    small = "260px",
    large = "370px"
}
export declare const menuOverlaySize: readonly ["small", "large"];
export declare const menuOverlayPlacement: readonly ["auto", "auto-start", "auto-end", "left-start", "left", "left-end", "right-start", "right", "right-end", "top-start", "top", "top-end", "bottom-start", "bottom", "bottom-end"];
export declare const menuOverlayRole: readonly ["menu", "dialog"];
export declare namespace MenuOverlay {
    export type Size = (typeof menuOverlaySize)[number];
    export type Placement = (typeof menuOverlayPlacement)[number];
    export type Role = (typeof menuOverlayRole)[number];
    const ELEMENT_base: import("../../mixins/FocusTrapMixin").FocusTrapMixinReturnType<typeof LitElement>;
    export class ELEMENT extends ELEMENT_base {
        private _isOpen;
        private static readonly activeOverlay;
        get isOpen(): boolean;
        set isOpen(newValue: boolean);
        size: MenuOverlay.Size;
        maxHeight: string;
        customWidth: string;
        showArrow: boolean;
        disabled: boolean;
        placement: MenuOverlay.Placement;
        allowHoverToggle: boolean;
        ariaRole: Role;
        ariaLabel: string;
        isDatePicker: boolean;
        overlayOffset: number;
        keepOpenOnWindowBlur: boolean;
        overlayContainer: HTMLDivElement;
        arrow: HTMLDivElement;
        positioningStrategy?: StrategyType;
        trigger?: NodeListOf<HTMLElement>;
        private popperInstance;
        private triggerElement;
        private _componentAddedAriaExpanded;
        static get styles(): import("lit").CSSResult[];
        private updateCSSProperties;
        updateActiveMenuOverlayOpened: (event: Event) => void;
        updateActiveMenuOverlayClosed: (event: Event) => void;
        firstUpdated(changedProperties: PropertyValues): void;
        updated(changedProperties: PropertyValues): void;
        connectedCallback(): void;
        disconnectedCallback(): void;
        checkIsInputField(element: HTMLElement): boolean;
        private updateTriggerElementAriaExpanded;
        private handleTriggerSlotChange;
        private removeTriggerEventListeners;
        private setupTriggerEventListeners;
        protected update(changedProperties: PropertyValues): void;
        private dispatchMenuOpen;
        private dispatchMenuClose;
        private handleInstance;
        private create;
        private destroy;
        private readonly handleTriggerClick;
        private toggleOverlay;
        private readonly setOverlay;
        private readonly expandPopup;
        private readonly collapsePopup;
        handleOutsideOverlayKeydown: (event: KeyboardEvent) => Promise<void>;
        handleTriggerKeyDown: (event: KeyboardEvent) => Promise<void>;
        private focusOnTrigger;
        private focusInsideOverlay;
        private focusOnNestedTrigger;
        handleOutsideOverlayClick: (event: MouseEvent) => void;
        handleWindowBlurEvent(): void;
        render(): import("lit-html").TemplateResult<1>;
    }
    export {};
}
declare global {
    interface HTMLElementTagNameMap {
        "md-menu-overlay": MenuOverlay.ELEMENT;
    }
}
