import * as React from 'react';
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
import { R as RadioOptionType, D as DirectionType } from '../commonTypes-TGqbHlp_.js';
export { Portal as DropdownMenuPortal } from '@headlessui/react';

declare const DropdownMenuRoot: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
    inset?: boolean;
} & React.RefAttributes<HTMLDivElement>>;
declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
    inset?: boolean;
    end?: any;
    shortcut?: React.ReactNode;
    badged?: boolean;
    slug?: string;
    LinkComponent?: any;
} & React.RefAttributes<HTMLDivElement>>;
declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
    inset?: boolean;
} & React.RefAttributes<HTMLDivElement>>;
declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const DropdownMenuShortcut: {
    ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
    displayName: string;
};
type ExtendedDropdownMenuContentProps = Partial<React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>> & {};
type ExtendedDropdownMenuTriggerProps = Partial<React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>> & {};
type SubItem = {
    label?: string;
    value?: any;
    icon?: any;
    action?: () => void;
    onMiddleClick?: (e: any) => void;
    highlighted?: boolean;
    disabled?: boolean;
    slug?: string;
};
type MenuItemType = {
    icon?: React.ReactNode;
    label?: string;
    shortcut?: React.ReactNode;
    badged?: boolean;
    value?: any;
    content?: any;
    slug?: string;
    end?: any;
    presist?: boolean;
    itemType?: "separator" | "label" | "custom" | "radio";
    action?: () => void;
    highlighted?: boolean;
    subitems?: SubItem[];
    options?: RadioOptionType[];
    currentOption?: string;
    onOptionChange?: (value: string) => void;
    disabled?: boolean;
    onMiddleClick?: (e: any) => void;
    onClick?: any;
};
interface DropdownMenuProps {
    trigger?: any;
    items: MenuItemType[];
    direction?: DirectionType;
    classNames?: {
        trigger?: string;
        content?: string;
        item?: string;
        separator?: string;
    };
    className?: ExtendedDropdownMenuContentProps["className"];
    triggerClassname?: ExtendedDropdownMenuTriggerProps["className"];
    triggerProps?: DropdownMenuPrimitive.DropdownMenuTriggerProps;
    sideOffset?: ExtendedDropdownMenuContentProps["sideOffset"];
    side?: ExtendedDropdownMenuContentProps["side"];
    align?: ExtendedDropdownMenuContentProps["align"];
    alignOffset?: ExtendedDropdownMenuContentProps["alignOffset"];
    contentProps?: ExtendedDropdownMenuContentProps;
    width?: "default" | "sm" | "lg" | "parent";
    size?: "default" | "sm";
    onItemSelect?: any;
    onOpenChange?: any;
    header?: React.ReactNode;
    open?: any;
    LinkComponent?: any;
}
declare const DropdownMenu: React.FC<DropdownMenuProps>;
interface DropdownMenuRadioOptionType extends RadioOptionType {
    props?: Omit<DropdownMenuPrimitive.DropdownMenuItemProps, "value" | "label">;
}
interface DropdownMenuRadioProps {
    trigger?: React.ReactNode;
    side?: ExtendedDropdownMenuContentProps["side"];
    align?: ExtendedDropdownMenuContentProps["align"];
    options: DropdownMenuRadioOptionType[];
    value: string;
    onValueChange: any;
    label?: string;
    contentProps?: ExtendedDropdownMenuContentProps;
    radioGroupProps?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioGroup>;
}
declare const DropdownMenuRadio: React.FC<DropdownMenuRadioProps>;

export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadio, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type MenuItemType, type SubItem };
