import { DropdownMenuConfig, DropdownMenuItem } from './types';
export type { DropdownMenuConfig, DropdownMenuItem, DropdownPlacement, MenuItem, MenuRadioGroup, MenuRadioItem, } from './types';
export declare class DropdownMenu {
    private readonly trigger;
    private readonly items;
    private readonly placement;
    private readonly className;
    private readonly onOpenCallback;
    private readonly onCloseCallback;
    private readonly menuId;
    private menuEl;
    private subMenuEl;
    private opened;
    private destroyed;
    private activeIndex;
    private subMenuActiveIndex;
    /** Bound event handlers for cleanup */
    private readonly handleTriggerClick;
    private readonly handleDocumentClick;
    private readonly handleKeyDown;
    constructor(config: DropdownMenuConfig);
    /** Check whether the menu is currently open */
    isOpen(): boolean;
    /** Open the dropdown menu */
    open(): void;
    /** Close the dropdown menu */
    close(): void;
    /** Toggle the menu open/closed */
    toggle(): void;
    /** Update the menu items */
    update(items: DropdownMenuItem[]): void;
    /** Remove all listeners and clean up */
    destroy(): void;
    /** Close any open sub-menu */
    private closeSubMenu;
    /** Create the menu DOM element */
    private createMenuElement;
    /** Render menu items into a container element */
    private renderItems;
    /** Render a radio group */
    private renderRadioGroup;
    /** Open a sub-menu next to the parent item */
    private openSubMenu;
    /** Position the main menu relative to the trigger */
    private positionMenu;
    /** Highlight the active item in the main menu */
    private highlightActiveItem;
    /** Highlight the active item in the sub-menu */
    private highlightSubMenuActiveItem;
    /** Handle keyboard navigation */
    private onKeyDown;
    /** Get a flat list of navigable menu item data (excluding separators) */
    private getFlatMenuItems;
    /** Type guard for radio group */
    private isRadioGroup;
}
//# sourceMappingURL=index.d.ts.map