interface MegamenuConfig {
    dataToggle?: string;
    activeClass?: string;
    removeOnDestroy?: boolean;
}
export default class Megamenu {
    element: HTMLElement;
    config: Required<MegamenuConfig>;
    toggleButtons: NodeListOf<HTMLButtonElement>;
    dropdowns: NodeListOf<HTMLElement>;
    mobileMenuButtons: HTMLButtonElement[];
    mobilePanels: HTMLElement[];
    mobileCloseButtons: HTMLButtonElement[];
    activeMobilePanel: HTMLElement | null;
    activeMobileTarget: string | null;
    desktopOverlay: HTMLButtonElement | null;
    accordionButtons: NodeListOf<HTMLButtonElement>;
    desktopOverlayClickHandler: (event: Event) => void;
    mobileCloseHandler: (event: Event) => void;
    focusTrapHandler: (event: KeyboardEvent) => void;
    focusTrapElement: HTMLElement | null;
    lastFocusedElement: HTMLElement | null;
    isKeyboardUser: boolean;
    keydownHandler: (e: KeyboardEvent) => void;
    mousedownHandler: () => void;
    touchstartHandler: () => void;
    instanceName: string;
    private isModalOpen;
    private getLockedScrollTop;
    private getEffectiveScrollY;
    constructor(element: HTMLElement, config?: MegamenuConfig);
    static getInstance(el: HTMLElement): Megamenu | null;
    init(): void;
    shouldUseMobileTrigger(button: HTMLButtonElement): boolean;
    getDefaultMobileTarget(): string;
    getTargetFromElement(control: HTMLElement | null): string;
    getPanelByTarget(target: string): HTMLElement | null;
    syncMobileButtonState(): void;
    isInMobilePanel(element: HTMLElement | null): boolean;
    getFocusRestoreTarget(): HTMLElement | null;
    setMobilePanelState(panel: HTMLElement, isOpen: boolean): void;
    handleToggleClick(event: Event): void;
    handleKeyPress(event: KeyboardEvent): void;
    handleAccordionClick(event: Event): void;
    handleScroll(): void;
    openDropdown(button: HTMLButtonElement): void;
    closeDropdown(button: HTMLButtonElement): void;
    closeAllDropdowns(): void;
    handleMobileMenuToggle(event: Event): void;
    openMobileMenu(target?: string, source?: HTMLElement): void;
    closeMobileMenu(): void;
    showDesktopOverlay(): void;
    hideDesktopOverlay(): void;
    openAccordion(button: HTMLButtonElement): void;
    closeAccordion(button: HTMLButtonElement): void;
    closeAllAccordions(): void;
    handleArrowNavigation(event: KeyboardEvent, dropdown: HTMLElement): void;
    trapFocus(element: HTMLElement): void;
    removeFocusTrap(): void;
    updateTabIndices(): void;
    destroy(): void;
}
export {};
