import { type VariantProps } from 'class-variance-authority'; import * as React from 'react'; import { CommandGroup, CommandItem, CommandSeparator } from '../../../ui/command.js'; import { PopoverPopup, PopoverTrigger } from '../../../ui/popover.js'; export interface ComboboxOption { /** Unique value for the option */ value: string; /** Display label for the option */ label: string; /** Optional icon to display */ icon?: React.ReactNode; /** Optional secondary text (e.g., @username, email) */ subtitle?: string; /** Optional description text (appears below label) */ description?: string; /** Keyboard shortcut to display */ shortcut?: string; /** Whether the option is disabled */ disabled?: boolean; /** Optional group this option belongs to */ group?: string; } export interface ComboboxGroup { /** Group label */ label: string; /** Options in this group */ options: ComboboxOption[]; } export interface ComboboxHeaderProps { /** Avatar element to display */ avatar?: React.ReactNode; /** Primary text (e.g., user name) */ title?: string; /** Secondary text (e.g., email) */ subtitle?: string; /** Custom children for full control */ children?: React.ReactNode; } export declare const comboboxTriggerVariants: (props?: ({ size?: "lg" | "md" | "sm" | null | undefined; variant?: "default" | "ghost" | "outline" | "primary" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export declare const comboboxContentVariants: (props?: ({ width?: "auto" | "full" | "lg" | "md" | "sm" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export declare const comboboxItemVariants: (props?: ({ variant?: "default" | "destructive" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; declare function ComboboxHeader({ avatar, title, subtitle, children, className, ...props }: ComboboxHeaderProps & React.ComponentProps<'div'>): React.JSX.Element; declare namespace ComboboxHeader { var displayName: string; } declare function ComboboxShortcut({ className, children, ...props }: React.ComponentProps<'kbd'>): React.JSX.Element; declare namespace ComboboxShortcut { var displayName: string; } export interface ComboboxMenuProps extends VariantProps, VariantProps { /** Options to display in the combobox */ options?: ComboboxOption[]; /** Grouped options to display */ groups?: ComboboxGroup[]; /** Currently selected value(s) */ value?: string | string[]; /** Initial selected value(s) for uncontrolled usage */ defaultValue?: string | string[]; /** Callback when selection changes */ onValueChange?: (value: string | string[]) => void; /** Placeholder text when nothing is selected */ placeholder?: string; /** Placeholder text for the search input */ searchPlaceholder?: string; /** Text to show when no results found */ emptyText?: string; /** Whether multiple selection is allowed */ multiple?: boolean; /** Whether the combobox is disabled */ disabled?: boolean; /** Whether to show search input */ searchable?: boolean; /** Custom trigger element */ trigger?: React.ReactNode; /** Header configuration for account-style menus */ header?: ComboboxHeaderProps; /** RTL direction support */ dir?: 'ltr' | 'rtl'; /** Additional class name for the trigger */ triggerClassName?: string; /** Additional class name for the content */ contentClassName?: string; /** Accessible name for the popup dialog */ contentAriaLabel?: string; /** Controlled open state */ open?: boolean; /** Initial open state for uncontrolled usage */ defaultOpen?: boolean; /** Callback when open state changes */ onOpenChange?: (open: boolean) => void; /** Side of the trigger to render the content */ side?: 'top' | 'right' | 'bottom' | 'left'; /** Alignment of the content relative to the trigger */ align?: 'start' | 'center' | 'end'; /** Maximum height of the list */ maxHeight?: number; } declare function ComboboxMenu({ options, groups, value, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyText, multiple, disabled, searchable, trigger, header, dir, size, variant, width, triggerClassName, contentClassName, contentAriaLabel, open: controlledOpen, defaultOpen, onOpenChange, side, align, maxHeight, }: ComboboxMenuProps): React.JSX.Element; declare namespace ComboboxMenu { var displayName: string; } export interface ComboboxRootProps { children: React.ReactNode; open?: boolean; onOpenChange?: (open: boolean) => void; defaultOpen?: boolean; } declare function ComboboxRoot({ children, open, onOpenChange, defaultOpen, }: ComboboxRootProps): React.JSX.Element; declare namespace ComboboxRoot { var displayName: string; } export interface ComboboxTriggerProps extends Omit, 'children'> { /** Trigger content */ children: React.ReactNode; } declare function ComboboxTrigger({ className, children, ...props }: ComboboxTriggerProps): React.JSX.Element; declare namespace ComboboxTrigger { var displayName: string; } export interface ComboboxContentProps extends Omit, 'children'> { /** Content items */ children: React.ReactNode; /** RTL direction support */ dir?: 'ltr' | 'rtl'; /** Whether to show search input */ searchable?: boolean; /** Placeholder text for the search input */ searchPlaceholder?: string; /** Text to show when no results found */ emptyText?: string; } declare function ComboboxContent({ className, children, dir, searchable, searchPlaceholder, emptyText, side, align, style, ...props }: ComboboxContentProps): React.JSX.Element; declare namespace ComboboxContent { var displayName: string; } export interface ComboboxItemProps extends React.ComponentProps { /** Icon to display */ icon?: React.ReactNode; /** Subtitle text (e.g., @username) */ subtitle?: string; /** Keyboard shortcut to display */ shortcut?: string; /** Whether this item is selected */ selected?: boolean; /** Whether this is a destructive action */ destructive?: boolean; /** RTL direction support */ dir?: 'ltr' | 'rtl'; } declare function ComboboxItem({ className, children, icon, subtitle, shortcut, selected, destructive, dir, ...props }: ComboboxItemProps): React.JSX.Element; declare namespace ComboboxItem { var displayName: string; } export interface ComboboxGroupProps extends React.ComponentProps { /** RTL direction support */ dir?: 'ltr' | 'rtl'; } declare const ComboboxGroup: React.FC; declare function ComboboxSeparator(props: React.ComponentProps): React.JSX.Element; declare namespace ComboboxSeparator { var displayName: string; } export { ComboboxContent, ComboboxGroup, ComboboxHeader, ComboboxItem, ComboboxMenu, ComboboxRoot, ComboboxSeparator, ComboboxShortcut, ComboboxTrigger, };