import { default as React } from 'react';
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
/**
 * A dropdown menu component that displays a menu when triggered.
 * Based on Radix UI's Dropdown Menu primitive.
 *
 * @example
 * ```tsx
 * // Simple dropdown with button trigger
 * function SimpleDropdown() {
 *   return (
 *     <DropdownMenu>
 *       <DropdownMenuTrigger asChild>
 *         <Button variant="outline" label="Open Menu" />
 *       </DropdownMenuTrigger>
 *       <DropdownMenuContent>
 *         <DropdownMenuLabel>My Account</DropdownMenuLabel>
 *         <DropdownMenuSeparator />
 *         <DropdownMenuItem>Profile</DropdownMenuItem>
 *         <DropdownMenuItem>Settings</DropdownMenuItem>
 *         <DropdownMenuItem>Logout</DropdownMenuItem>
 *       </DropdownMenuContent>
 *     </DropdownMenu>
 *   );
 * }
 * ```
 *
 * @example
 * ```tsx
 * // Advanced dropdown with custom trigger and multiple sections
 * function UserProfileDropdown() {
 *   return (
 *     <DropdownMenu>
 *       <DropdownMenuTrigger asChild>
 *         <div className="flex cursor-pointer items-center justify-center rounded-md border p-1">
 *           <div className="flex items-center gap-2">
 *             <Logo />
 *             <Icon name="ChevronsUpDown" />
 *           </div>
 *         </div>
 *       </DropdownMenuTrigger>
 *       <DropdownMenuContent align="start" sideOffset={4} className="w-56">
 *         <DropdownMenuLabel>
 *           <Text weight="semibold">Company Name</Text>
 *         </DropdownMenuLabel>
 *         <DropdownMenuSeparator />
 *
 *         <DropdownMenuItem>
 *           <Text type="small">Help Center</Text>
 *         </DropdownMenuItem>
 *
 *         <DropdownMenuSeparator />
 *         <DropdownMenuLabel>Account</DropdownMenuLabel>
 *         <DropdownMenuItem>
 *           <Text type="small">Manage Account</Text>
 *         </DropdownMenuItem>
 *         <DropdownMenuItem className="justify-between">
 *           <Text type="small">Sign Out</Text>
 *           <Icon name="LogOut" />
 *         </DropdownMenuItem>
 *       </DropdownMenuContent>
 *     </DropdownMenu>
 *   );
 * }
 * ```
 */
declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
/**
 * The trigger element for the dropdown menu.
 * Can be used with the `asChild` prop to use a custom element as the trigger.
 *
 * @example
 * ```tsx
 * // With Button component
 * <DropdownMenuTrigger asChild>
 *   <Button variant="outline" label="Open Menu" />
 * </DropdownMenuTrigger>
 * ```
 *
 * @example
 * ```tsx
 * // With custom div
 * <DropdownMenuTrigger asChild>
 *   <div className="flex cursor-pointer items-center p-2">
 *     <Icon name="Menu" />
 *     <span>Options</span>
 *   </div>
 * </DropdownMenuTrigger>
 * ```
 */
declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
/**
 * Groups dropdown menu items together.
 * Useful for organizing related menu items.
 *
 * @example
 * ```tsx
 * <DropdownMenuGroup>
 *   <DropdownMenuItem>Profile</DropdownMenuItem>
 *   <DropdownMenuItem>Settings</DropdownMenuItem>
 *   <DropdownMenuItem>Preferences</DropdownMenuItem>
 * </DropdownMenuGroup>
 * ```
 */
declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
/**
 * Portals the dropdown menu content into the body.
 *
 * @example
 * ```tsx
 * <DropdownMenuPortal>
 *   <DropdownMenuContent>
 *     <DropdownMenuItem>Item 1</DropdownMenuItem>
 *     <DropdownMenuItem>Item 2</DropdownMenuItem>
 *   </DropdownMenuContent>
 * </DropdownMenuPortal>
 * ```
 */
declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
/**
 * Creates a submenu within a dropdown menu.
 * Useful for nested navigation.
 *
 * @example
 * ```tsx
 * <DropdownMenuSub>
 *   <DropdownMenuSubTrigger>More Options</DropdownMenuSubTrigger>
 *   <DropdownMenuSubContent>
 *     <DropdownMenuItem>Preferences</DropdownMenuItem>
 *     <DropdownMenuItem>Notifications</DropdownMenuItem>
 *   </DropdownMenuSubContent>
 * </DropdownMenuSub>
 * ```
 */
declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
/**
 * A group of radio items within the dropdown menu.
 * Used when only one option can be selected at a time.
 *
 * @example
 * ```tsx
 * <DropdownMenuRadioGroup value={position} onValueChange={setPosition}>
 *   <DropdownMenuRadioItem value="top">Top</DropdownMenuRadioItem>
 *   <DropdownMenuRadioItem value="right">Right</DropdownMenuRadioItem>
 *   <DropdownMenuRadioItem value="bottom">Bottom</DropdownMenuRadioItem>
 *   <DropdownMenuRadioItem value="left">Left</DropdownMenuRadioItem>
 * </DropdownMenuRadioGroup>
 * ```
 */
declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
/**
 * Trigger for a submenu within a dropdown menu.
 * Displays a chevron icon to indicate that it opens a submenu.
 *
 * @param {boolean} inset - Whether to add padding on the left side
 * @param {React.ReactNode} children - The content of the trigger
 *
 * @example
 * ```tsx
 * <DropdownMenuSub>
 *   <DropdownMenuSubTrigger>More Options</DropdownMenuSubTrigger>
 *   <DropdownMenuSubContent>
 *     <DropdownMenuItem>Submenu Item</DropdownMenuItem>
 *   </DropdownMenuSubContent>
 * </DropdownMenuSub>
 * ```
 */
declare const DropdownMenuSubTrigger: React.FC<React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.SubTrigger> & {
    inset?: boolean;
}>;
/**
 * Content for a submenu within a dropdown menu.
 * Appears when the submenu trigger is clicked.
 *
 * @example
 * ```tsx
 * <DropdownMenuSub>
 *   <DropdownMenuSubTrigger>More Options</DropdownMenuSubTrigger>
 *   <DropdownMenuSubContent>
 *     <DropdownMenuItem>Submenu Item 1</DropdownMenuItem>
 *     <DropdownMenuItem>Submenu Item 2</DropdownMenuItem>
 *   </DropdownMenuSubContent>
 * </DropdownMenuSub>
 * ```
 */
declare const DropdownMenuSubContent: React.FC<React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.SubContent>>;
/**
 * Dropdown menu content component that displays the dropdown items.
 * This is the container for all dropdown menu items and sections.
 *
 * @param {"start" | "center" | "end"} align - Alignment of the dropdown content relative to the trigger
 * @param {number} sideOffset - Distance between the trigger and the content
 *
 * @example
 * ```tsx
 * <DropdownMenu>
 *   <DropdownMenuTrigger asChild>
 *     <Button variant="outline" label="Open Menu" />
 *   </DropdownMenuTrigger>
 *   <DropdownMenuContent align="start" sideOffset={4}>
 *     <DropdownMenuLabel>My Account</DropdownMenuLabel>
 *     <DropdownMenuSeparator />
 *     <DropdownMenuItem>Profile</DropdownMenuItem>
 *     <DropdownMenuItem>Logout</DropdownMenuItem>
 *   </DropdownMenuContent>
 * </DropdownMenu>
 * ```
 */
declare const DropdownMenuContent: React.FC<React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Content> & {
    align?: 'start' | 'center' | 'end';
}>;
/**
 * Interactive item within a dropdown menu.
 * Can be clicked to perform an action.
 *
 * @param {boolean} inset - Whether to add padding on the left side
 * @param {boolean} disabled - Whether the item is disabled
 *
 * @example
 * ```tsx
 * <DropdownMenuItem>
 *   <Text type="small">Profile</Text>
 * </DropdownMenuItem>
 * ```
 *
 * @example
 * ```tsx
 * // With icon
 * <DropdownMenuItem className="justify-between gap-2">
 *   <Text type="small">Sign Out</Text>
 *   <Icon name="LogOut" />
 * </DropdownMenuItem>
 * ```
 */
declare const DropdownMenuItem: React.FC<React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Item> & {
    inset?: boolean;
}>;
/**
 * Checkbox item within a dropdown menu.
 * Can be checked or unchecked.
 *
 * @param {boolean} checked - Whether the checkbox is checked
 * @param {boolean} disabled - Whether the checkbox is disabled
 * @param {React.ReactNode} children - The content of the checkbox item
 *
 * @example
 * ```tsx
 * <DropdownMenuCheckboxItem checked={showStatus} onCheckedChange={setShowStatus}>
 *   Show Status
 * </DropdownMenuCheckboxItem>
 * ```
 */
declare const DropdownMenuCheckboxItem: React.FC<React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.CheckboxItem>>;
/**
 * Radio item within a dropdown menu radio group.
 * Only one item in a group can be selected.
 *
 * @param {string} value - The value of the radio item
 * @param {React.ReactNode} children - The content of the radio item
 *
 * @example
 * ```tsx
 * <DropdownMenuRadioGroup value={position} onValueChange={setPosition}>
 *   <DropdownMenuRadioItem value="top">Top</DropdownMenuRadioItem>
 *   <DropdownMenuRadioItem value="right">Right</DropdownMenuRadioItem>
 *   <DropdownMenuRadioItem value="bottom">Bottom</DropdownMenuRadioItem>
 *   <DropdownMenuRadioItem value="left">Left</DropdownMenuRadioItem>
 * </DropdownMenuRadioGroup>
 * ```
 */
declare const DropdownMenuRadioItem: React.FC<React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.RadioItem>>;
/**
 * Label for a section in a dropdown menu.
 * Used to group related items.
 *
 * @param {boolean} inset - Whether to add padding on the left side
 * @param {React.ReactNode} children - The content of the label
 *
 * @example
 * ```tsx
 * <DropdownMenuLabel>
 *   <Text weight="semibold">My Account</Text>
 * </DropdownMenuLabel>
 * ```
 *
 * @example
 * ```tsx
 * // Simple text label
 * <DropdownMenuLabel>Account Settings</DropdownMenuLabel>
 * ```
 */
declare const DropdownMenuLabel: React.FC<React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Label> & {
    inset?: boolean;
}>;
/**
 * Separator line between dropdown menu items or sections.
 *
 * @example
 * ```tsx
 * <DropdownMenuContent>
 *   <DropdownMenuLabel>Account</DropdownMenuLabel>
 *   <DropdownMenuItem>Profile</DropdownMenuItem>
 *   <DropdownMenuSeparator />
 *   <DropdownMenuItem>Logout</DropdownMenuItem>
 * </DropdownMenuContent>
 * ```
 */
declare const DropdownMenuSeparator: React.FC<React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Separator>>;
/**
 * Displays keyboard shortcuts next to dropdown menu items.
 * Typically shown on the right side of menu items.
 *
 * @param {string} className - Additional CSS classes
 *
 * @example
 * ```tsx
 * <DropdownMenuItem>
 *   <span>Copy</span>
 *   <DropdownMenuShortcut>⌘C</DropdownMenuShortcut>
 * </DropdownMenuItem>
 * ```
 */
declare const DropdownMenuShortcut: {
    ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, };
