import { StoreApi } from 'zustand';
import { ReactNode, HTMLAttributes } from 'react';
type MenuVariant = 'menu' | 'menu2' | 'menu-overflow' | 'menu-overflow-col' | 'breadcrumb';
interface MenuStore {
    value: string;
    /** User-initiated selection (e.g. a MenuItem click): fires `onValueChange`. */
    setValue: (value: string) => void;
    /**
     * Syncs the controlled `value`/`defaultValue` prop into the store WITHOUT
     * firing `onValueChange`. A prop change is not a user selection, so it must
     * not dispatch a click — otherwise a route-driven `value` change would
     * trigger navigation (e.g. bouncing `/atividades/detalhes/:id` back to
     * `/atividades`).
     */
    syncValue: (value: string) => void;
    onValueChange?: (value: string) => void;
}
type MenuStoreApi = StoreApi<MenuStore>;
export declare const useMenuStore: (externalStore?: MenuStoreApi) => MenuStoreApi;
interface MenuProps extends HTMLAttributes<HTMLDivElement> {
    children: ReactNode;
    defaultValue: string;
    value?: string;
    variant?: MenuVariant;
    onValueChange?: (value: string) => void;
}
declare const Menu: import("react").ForwardRefExoticComponent<MenuProps & import("react").RefAttributes<HTMLDivElement>>;
interface MenuContentProps extends HTMLAttributes<HTMLUListElement> {
    children: ReactNode;
    variant?: MenuVariant;
}
declare const MenuContent: import("react").ForwardRefExoticComponent<MenuContentProps & import("react").RefAttributes<HTMLUListElement>>;
interface MenuItemProps extends HTMLAttributes<HTMLLIElement> {
    value: string;
    disabled?: boolean;
    store?: MenuStoreApi;
    variant?: MenuVariant;
    separator?: boolean;
}
declare const MenuItem: import("react").ForwardRefExoticComponent<MenuItemProps & import("react").RefAttributes<HTMLLIElement>>;
declare const MenuItemIcon: ({ className, icon, ...props }: HTMLAttributes<HTMLSpanElement> & {
    icon: ReactNode;
}) => import("react/jsx-runtime").JSX.Element;
export declare const internalScroll: (container: HTMLUListElement | null, direction: "left" | "right") => void;
export declare const internalCheckScroll: (container: HTMLUListElement | null, setShowLeftArrow: (v: boolean) => void, setShowRightArrow: (v: boolean) => void) => void;
interface MenuOverflowProps extends HTMLAttributes<HTMLDivElement> {
    children: ReactNode;
    defaultValue: string;
    value?: string;
    onValueChange?: (value: string) => void;
}
declare const MenuOverflow: ({ children, className, defaultValue, value, onValueChange, ...props }: MenuOverflowProps) => import("react/jsx-runtime").JSX.Element;
export default Menu;
export { Menu, MenuContent, MenuItem, MenuOverflow, MenuItemIcon };
//# sourceMappingURL=Menu.d.ts.map