import { IconValue } from '../../core/types';
import { ContextMenuItem, ContextMenuParams } from './types';
/**
 * Build the visible menu items by resolving dynamic items and filtering hidden ones.
 *
 * @param items - Menu items configuration (array or factory function)
 * @param params - Context menu parameters for evaluating dynamic properties
 * @returns Filtered array of visible menu items
 */
export declare function buildMenuItems(items: ContextMenuItem[] | ((params: ContextMenuParams) => ContextMenuItem[]), params: ContextMenuParams): ContextMenuItem[];
/**
 * Check if a menu item is disabled.
 *
 * @param item - The menu item to check
 * @param params - Context menu parameters for evaluating dynamic disabled state
 * @returns True if the item is disabled
 */
export declare function isItemDisabled(item: ContextMenuItem, params: ContextMenuParams): boolean;
/**
 * Create the menu DOM element from a list of menu items.
 *
 * @param items - Array of menu items to render
 * @param params - Context menu parameters for evaluating dynamic properties
 * @param onAction - Callback when a menu item action is triggered
 * @param submenuArrow - Optional custom submenu arrow icon
 * @returns The created menu element
 */
export declare function createMenuElement(items: ContextMenuItem[], params: ContextMenuParams, onAction: (item: ContextMenuItem) => void, submenuArrow?: IconValue): HTMLElement;
/**
 * Position the menu at the given viewport coordinates.
 * Menu is rendered in document.body with fixed positioning for top-layer behavior.
 *
 * @param menu - The menu element to position
 * @param x - Desired X coordinate (viewport)
 * @param y - Desired Y coordinate (viewport)
 */
export declare function positionMenu(menu: HTMLElement, x: number, y: number): void;
//# sourceMappingURL=menu.d.ts.map