import { HasSlotController } from '../../../../utils/src/custom-element/slot';
import { ReactiveController, ReactiveControllerHost } from 'lit';
import { default as CxPopup } from '../popup/popup';
import { default as CxMenuItem } from './menu-item';

/** A reactive controller to manage the registration of event listeners for submenus. */
export declare class SubmenuController implements ReactiveController {
    private readonly host;
    private readonly popupRef;
    private parent;
    private enableSubmenuTimer;
    private isHorizontalMenu;
    private isConnected;
    private isPopupConnected;
    private skidding;
    private readonly hasSlotController;
    private readonly submenuOpenDelay;
    private parentObserver;
    constructor(host: ReactiveControllerHost & CxMenuItem, hasSlotController: HasSlotController);
    get popup(): CxPopup | undefined;
    hostConnected(): void;
    hostDisconnected(): void;
    hostUpdated(): void;
    private addListeners;
    private removeListeners;
    private syncIsHorizontalMenu;
    private handleMouseMove;
    private handleMouseOver;
    private handleSubmenuEntry;
    private handleKeyDown;
    private handleClick;
    private handleSubmenuIconClick;
    private handleDocumentMouseDown;
    private handleMouseLeave;
    private handlePopupMouseover;
    private handlePopupReposition;
    private setSubmenuState;
    private enableSubmenu;
    disableSubmenu(): void;
    private updateSkidding;
    isExpanded(): boolean;
    renderSubmenu(): import('lit').TemplateResult<1> | null;
}
