import { type IUiMenuContentItem, type IUiMenuFocusableItem, type IUiMenuInteractiveItem, type IUiMenuItem, type IUiMenuItemData } from "./types.js";
/**
 * Recursively finds an item in the menu tree that matches the predicate.
 * @internal
 */
export declare const findItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], predicate: (item: IUiMenuItem<T>) => boolean) => IUiMenuItem<T> | undefined;
/**
 * Gets a menu item by its ID.
 * @internal
 */
export declare const getItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuItem<T> | undefined;
/**
 * Finds an interactive menu item that matches the predicate.
 * @internal
 */
export declare const findInteractiveItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], predicate: (item: IUiMenuInteractiveItem<T>) => boolean) => IUiMenuInteractiveItem<T> | undefined;
/**
 * Finds a content menu item that matches the predicate.
 * @internal
 */
export declare const findContentItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], predicate: (item: IUiMenuContentItem<T>) => boolean) => IUiMenuContentItem<T> | undefined;
/**
 * Gets an interactive menu item by its ID.
 * @internal
 */
export declare const getInteractiveItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuInteractiveItem<T> | undefined;
/**
 * Gets a content menu item by its ID.
 * @internal
 */
export declare const getContentItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuContentItem<T> | undefined;
/**
 * Gets a focusable (either interactive or content) menu item by its ID.
 * @internal
 */
export declare const getFocusableItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuFocusableItem | undefined;
/**
 * Gets all items under a specific interactive parent item.
 * @internal
 */
export declare const getItemsByInteractiveParent: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], parentId?: string | undefined) => IUiMenuItem<T>[] | undefined;
/**
 * Gets the interactive parent of a menu item.
 * @internal
 */
export declare const getItemInteractiveParent: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuInteractiveItem<T> | undefined;
/**
 * Gets all sibling items of a menu item.
 * @internal
 */
export declare const getSiblingItems: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuItem<T>[] | undefined;
/**
 * Gets all next sibling items of a menu item with wraparound.
 * @internal
 */
export declare const getNextSiblings: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuItem<T>[];
/**
 * Gets all previous sibling items of a menu item with wraparound.
 * @internal
 */
export declare const getPreviousSiblings: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuItem<T>[];
/**
 * Gets the closest focusable sibling item in the specified direction.
 * @internal
 */
export declare const getClosestFocusableSibling: <T extends IUiMenuItemData = object>(args: {
    items: IUiMenuItem<T>[];
    isItemFocusable: (item: IUiMenuItem<T>) => boolean;
    itemId?: string | undefined;
    direction: "backward" | "forward";
}) => IUiMenuItem<T> | undefined;
/**
 * Unwraps items from group containers into a flat array.
 * @internal
 */
export declare function unwrapGroupItems<T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[]): IUiMenuItem<T>[];
//# sourceMappingURL=itemUtils.d.ts.map