import { type ComponentProps, type ReactNode } from 'react';
import * as Ariakit from '@ariakit/react';
import { type VariantProps } from 'class-variance-authority';
export type Action = {
    filterItems?: boolean;
    focusEditor?: boolean;
    group?: string;
    icon?: ReactNode;
    items?: Action[];
    keywords?: string[];
    label?: string;
    shortcut?: string;
    value?: string;
};
export type ActionGroup = {
    group?: string;
    value?: string;
};
export type MenuProps = Ariakit.MenuProviderProps & {
    trigger?: ReactNode;
    value?: string;
    onOpenChange?: Ariakit.MenuProviderProps['setOpen'];
    onRootMenuClose?: () => void;
    onValueChange?: Ariakit.ComboboxProviderProps['setValue'];
    onValuesChange?: Ariakit.MenuProviderProps['setValues'];
};
export declare function Menu({ children, trigger, value, onOpenChange, onRootMenuClose: _onRootMenuClose, onValueChange, onValuesChange, ...props }: MenuProps): import("react/jsx-runtime").JSX.Element;
export declare function MenuTrigger({ children, icon, label, ...props }: ComponentProps<typeof Ariakit.MenuButton> & {
    icon?: ReactNode;
    label?: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
declare const menuVariants: (props?: ({
    animateZoom?: boolean | null | undefined;
    variant?: "default" | "ai" | "aiSub" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export type MenuContentProps = Ariakit.MenuProps & VariantProps<typeof menuVariants> & {
    animateZoom?: boolean;
    onClickOutside?: (event: globalThis.MouseEvent) => void;
};
export declare function MenuContent({ animateZoom, children, className, ref, variant, onClickOutside, ...props }: MenuContentProps): import("react/jsx-runtime").JSX.Element;
export declare function MenuSeparator(props: ComponentProps<typeof Ariakit.MenuSeparator>): import("react/jsx-runtime").JSX.Element;
export declare function MenuGroup({ label, ...props }: ComponentProps<typeof Ariakit.MenuGroup> & {
    label?: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
export declare function MenuShortcut({ ...props }: ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
declare const menuItemVariants: (props?: ({
    isEmpty?: boolean | null | undefined;
    variant?: "default" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export type MenuItemProps = Omit<Ariakit.ComboboxItemProps, 'store'> & {
    checked?: boolean;
    group?: string;
    icon?: ReactNode;
    label?: string;
    name?: string;
    parentGroup?: string;
    preventClose?: boolean;
    shortcut?: ReactNode;
    shortcutEnter?: boolean;
    value?: string;
} & VariantProps<typeof menuItemVariants>;
export declare function MenuItem({ checked, className, group, icon, isEmpty, label, name, parentGroup, preventClose, shortcut, shortcutEnter, variant, ...props }: Omit<Ariakit.ComboboxItemProps, 'store'> & {
    checked?: boolean;
    group?: string;
    icon?: ReactNode;
    label?: string;
    name?: string;
    parentGroup?: string;
    preventClose?: boolean;
    shortcut?: ReactNode;
    shortcutEnter?: boolean;
    value?: string;
} & VariantProps<typeof menuItemVariants>): import("react/jsx-runtime").JSX.Element;
export declare const comboboxVariants: (props?: ({
    variant?: "default" | "ai" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export declare function ComboboxContent({ className, variant, ...props }: ComponentProps<'div'> & VariantProps<typeof comboboxVariants>): import("react/jsx-runtime").JSX.Element;
declare const comboboxListVariants: (props?: ({
    variant?: "default" | "ai" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export declare function ComboboxList({ className, variant, ...props }: ComponentProps<typeof Ariakit.ComboboxList> & VariantProps<typeof comboboxListVariants>): import("react/jsx-runtime").JSX.Element;
export declare function ComboboxInput({ children, ...props }: ComponentProps<typeof Ariakit.Combobox>): import("react/jsx-runtime").JSX.Element;
export declare function ComboboxEmpty(): import("react/jsx-runtime").JSX.Element;
export * as Ariakit from '@ariakit/react';
export declare function filterMenuItems({ items, ...group }: Action, searchValue: string): Action[];
export declare function filterMenuGroups(menuGroups: Action[], searchValue: string): Action[];
export declare function useComboboxValueState(): readonly [string, (value: string) => void];
export declare function useMenuSide(): string;
export declare function useContextMenu(anchorRect: {
    x: number;
    y: number;
}): {
    store: any;
    getAnchorRect: () => {
        x: number;
        y: number;
    };
    show: () => void;
};
export declare function useMenuStore(): {
    store: any;
    show: (anchorElement: HTMLElement) => void;
};
