import React, { HTMLAttributes } from "react";
export interface ContextMenuItem {
    id: string;
    label: string;
    icon?: React.ReactNode;
    shortcut?: string;
    disabled?: boolean;
    destructive?: boolean;
    separator?: boolean;
    children?: ContextMenuItem[];
    action?: () => void;
    onClick?: () => void;
}
export interface GlassContextMenuProps extends HTMLAttributes<HTMLDivElement> {
    /**
     * Menu items
     */
    items?: ContextMenuItem[];
    /**
     * Children to trigger the context menu
     */
    children: React.ReactNode;
    /**
     * Custom trigger element
     */
    trigger?: React.ReactNode;
    /**
     * Whether menu is open
     */
    open?: boolean;
    /**
     * Callback when open state changes
     */
    onOpenChange?: (open: boolean) => void;
    /**
     * Menu alignment
     */
    align?: "start" | "center" | "end";
    /**
     * Menu side
     */
    side?: "top" | "right" | "bottom" | "left";
    /**
     * Custom className
     */
    className?: string;
    /**
     * Additional className for menu content element
     */
    menuClassName?: string;
    /**
     * Whether to respect motion preferences for animations
     */
    respectMotionPreference?: boolean;
}
export interface GlassContextMenuContentProps {
    /**
     * Menu items
     */
    items: ContextMenuItem[];
    /**
     * Position of the menu
     */
    position: {
        x: number;
        y: number;
    };
    /**
     * Callback to close menu
     */
    onClose: () => void;
    /**
     * Maximum width
     */
    maxWidth?: string;
    /**
     * Custom className
     */
    className?: string;
}
export interface GlassContextMenuItemProps {
    /**
     * Menu item data
     */
    item: ContextMenuItem;
    /**
     * Whether item is selected
     */
    isSelected?: boolean;
    /**
     * Callback when item is clicked
     */
    onClick: (item: ContextMenuItem) => void;
    /**
     * Callback to close menu
     */
    onClose: () => void;
    /**
     * Whether this is a submenu
     */
    isSubmenu?: boolean;
}
/**
 * GlassContextMenu component
 * A glassmorphism context menu that appears on right-click
 */
export declare const GlassContextMenu: React.FC<GlassContextMenuProps>;
/**
 * GlassContextMenuContent component
 * The actual menu content with positioning
 */
export declare const GlassContextMenuContent: React.FC<GlassContextMenuContentProps>;
/**
 * GlassContextMenuItem component
 * Individual menu item
 */
export declare const GlassContextMenuItem: React.FC<GlassContextMenuItemProps>;
/**
 * Hook for creating context menu items
 */
export declare const useContextMenu: () => {
    createItem: (id: string, label: string, action?: () => void, options?: Partial<Omit<ContextMenuItem, "id" | "label" | "action">>) => ContextMenuItem;
    createSeparator: () => ContextMenuItem;
};
//# sourceMappingURL=GlassContextMenu.d.ts.map