import { type VariantProps } from 'class-variance-authority'; import * as React from 'react'; export interface NavAccountMenuProps { /** Trigger variant style */ type?: 'card' | 'simple'; /** Controlled open state */ open?: boolean; /** Callback when open state changes */ onOpenChange?: (open: boolean) => void; /** Initial open state for uncontrolled mode */ defaultOpen?: boolean; /** Children (trigger + content) */ children: React.ReactNode; } declare function NavAccountMenu({ type, open: controlledOpen, defaultOpen, onOpenChange, children, }: NavAccountMenuProps): React.JSX.Element; declare namespace NavAccountMenu { var displayName: string; } declare const triggerVariants: (props?: ({ type?: "card" | "simple" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface NavAccountMenuTriggerProps extends VariantProps { /** Avatar element (use Avatar component) */ avatar?: React.ReactNode; /** User display name */ name: string; /** User email address */ email?: string; /** Optional badge after name (e.g., "External" tag) */ badge?: React.ReactNode; /** Show logout button instead of chevron (for 'simple' type) */ showLogoutButton?: boolean; /** Logout callback for simple variant */ onLogout?: () => void; /** Show only avatar without name/email - useful for collapsed sidebar */ compact?: boolean; /** Additional className */ className?: string; } declare function NavAccountMenuTrigger({ avatar, name, email, badge, showLogoutButton, onLogout, compact, className, }: NavAccountMenuTriggerProps): React.JSX.Element; declare namespace NavAccountMenuTrigger { var displayName: string; } export interface NavAccountMenuContentProps { /** Popover side positioning */ side?: 'top' | 'right' | 'bottom' | 'left'; /** Popover alignment */ align?: 'start' | 'center' | 'end'; /** Side offset */ sideOffset?: number; /** Children */ children: React.ReactNode; /** Additional className */ className?: string; } declare function NavAccountMenuContent({ side, align, sideOffset, children, className, }: NavAccountMenuContentProps): React.JSX.Element; declare namespace NavAccountMenuContent { var displayName: string; } export interface NavAccountMenuHeaderProps { /** Header title (e.g. "Profile") */ title: string; /** Subtitle text or custom React node (e.g. "Last login 22 May, 2026 11:30pm") */ subtitle?: React.ReactNode; /** Additional className */ className?: string; } declare function NavAccountMenuHeader({ title, subtitle, className, }: NavAccountMenuHeaderProps): React.JSX.Element; declare namespace NavAccountMenuHeader { var displayName: string; } export interface NavAccountMenuSectionProps { /** Optional section header label */ label?: string; /** Show top border separator between sections */ bordered?: boolean; /** Section content */ children: React.ReactNode; /** Additional className */ className?: string; } declare function NavAccountMenuSection({ label, bordered, children, className, }: NavAccountMenuSectionProps): React.JSX.Element; declare namespace NavAccountMenuSection { var displayName: string; } /** * Props passed to the render function for custom menu item rendering. */ export interface NavAccountMenuItemRenderProps { /** Combined className for styling */ className: string; /** Click handler that closes menu and triggers onSelect */ onClick: () => void; /** Menu item content (icon, label, shortcut) */ children: React.ReactNode; } /** * Render prop type for polymorphic rendering. * Accepts a function that receives props and returns an element. */ type NavAccountMenuItemRenderFn = (props: NavAccountMenuItemRenderProps) => React.ReactElement; export interface NavAccountMenuItemProps { /** Left icon (20px) */ icon?: React.ReactNode; /** Keyboard shortcut display */ shortcut?: string; /** Destructive styling (red) */ destructive?: boolean; /** Disabled state */ disabled?: boolean; /** Selection callback */ onSelect?: () => void; /** * Render prop for polymorphic rendering. * Use this to render the menu item as a different element (e.g., link). * @example * } * render={(props) => } * > * View profile * */ render?: NavAccountMenuItemRenderFn; /** Label text */ children: React.ReactNode; /** Additional className */ className?: string; } declare function NavAccountMenuItem({ icon, shortcut, destructive, disabled, onSelect, render, children, className, }: NavAccountMenuItemProps): React.JSX.Element; declare namespace NavAccountMenuItem { var displayName: string; } export interface NavAccountMenuAccountProps { /** Avatar element */ avatar?: React.ReactNode; /** Account display name */ name: string; /** Account email */ email: string; /** Whether this account is currently selected */ selected?: boolean; /** Selection callback */ onSelect?: () => void; /** Additional className */ className?: string; } declare function NavAccountMenuAccount({ avatar, name, email, selected, onSelect, className, }: NavAccountMenuAccountProps): React.JSX.Element; declare namespace NavAccountMenuAccount { var displayName: string; } export interface NavAccountMenuSeparatorProps { /** Additional className */ className?: string; } declare function NavAccountMenuSeparator({ className }: NavAccountMenuSeparatorProps): React.JSX.Element; declare namespace NavAccountMenuSeparator { var displayName: string; } export interface NavAccountMenuFooterProps { /** Footer content (typically buttons) */ children: React.ReactNode; /** Additional className */ className?: string; } declare function NavAccountMenuFooter({ children, className, }: NavAccountMenuFooterProps): React.JSX.Element; declare namespace NavAccountMenuFooter { var displayName: string; } export interface NavAccountMenuThemeSwitchProps { /** Switch theme variant to render */ variant?: 'theme-gradient' | 'theme-switch' | 'theme-pill' | 'theme-segmented'; /** Switch size */ size?: 'sm' | 'md' | 'lg'; /** Controlled checked state (dark = checked) */ checked?: boolean; /** Callback when checked state changes */ onCheckedChange?: (checked: boolean) => void; /** Optional label displayed next to the switch (e.g. "Light Mode") */ label?: string; /** Additional className */ className?: string; } declare function NavAccountMenuThemeSwitch({ variant, size, checked, onCheckedChange, label, className, }: NavAccountMenuThemeSwitchProps): React.JSX.Element; declare namespace NavAccountMenuThemeSwitch { var displayName: string; } export { NavAccountMenu, NavAccountMenuAccount, NavAccountMenuContent, NavAccountMenuFooter, NavAccountMenuHeader, NavAccountMenuItem, NavAccountMenuSection, NavAccountMenuSeparator, NavAccountMenuThemeSwitch, NavAccountMenuTrigger, triggerVariants as navAccountMenuTriggerVariants, };