import { type PropsWithChildren, type ReactElement } from "react";
import { type Input } from '../input';
import { type Text } from '../text';
import { type ComponentSize } from '../util/component';
interface MenuContextValue {
    onClick: (key: string) => void;
    selected: string;
    level?: Text.Level;
    iconSpacing?: ComponentSize;
}
export declare const MenuContext: import("react").Context<MenuContextValue>;
export interface MenuProps extends Partial<Input.Control<string>>, PropsWithChildren, Pick<MenuContextValue, "level" | "iconSpacing"> {
}
export declare const useMenuContext: () => MenuContextValue;
/**
 * Menu is a modular component that allows you to create a menu with a list of items.
 * It satisfies the InputControl string interface, so it's selected value can be
 * controlled.
 *
 * @param props - Props for the component. All unlisted props will be spread to the
 * underlying Space component acting as the root element.
 * @param props.onChange - Callback executed when the selected item changes.
 * @param props.value - The selected item.
 */
export declare const Menu: ({ children, onChange, level, iconSpacing, value, }: MenuProps) => ReactElement;
export {};
