import React from "react"; export interface ComboboxOption { value: string; label: string; id?: string; } /** * Props for the `EnhancedCombobox` component. * * This component is a fully-featured combobox with optional virtualization, * search, and scroll indicators. All `testId*` props are optional and intended * to be used only for testing (e.g. `data-testid` attributes). */ interface EnhancedComboboxProps { /** Array of options to show in the list. */ options: ComboboxOption[]; /** Currently selected value. */ value?: string; /** Called when the selected value changes. */ onValueChange: (value: string) => void; /** Optional handler invoked when the search text changes. */ onSearchChange?: (search: string) => void; /** Placeholder text shown in the trigger when no option is selected. */ placeholder?: string; /** Placeholder shown inside the search input within the popover. */ searchPlaceholder?: string; /** Text to display when no options are available. */ emptyText?: string; /** Whether the component is in a loading/searching state. */ loading?: boolean; /** Whether the combobox is disabled. */ disabled?: boolean; /** Additional classes to apply to the trigger button. */ className?: string; /** Maximum height of the dropdown list in pixels. */ maxHeight?: number; /** Show gradient scroll indicators at the top/bottom of the list. */ showScrollIndicators?: boolean; /** Number of options above which virtualization is enabled. */ virtualizeThreshold?: number; /** Optional label displayed above the trigger. */ label?: string; /** Whether the field is required. */ required?: boolean; /** `id` applied to the trigger button (also used for label `htmlFor`). */ id?: string; /** Optional informational text displayed below the component. */ info?: string; /** Optional error text displayed below the component (error state). */ error?: string; /** `data-testid` for the trigger button (e.g. `my-combobox-trigger`). */ testIdTrigger?: string; /** `data-testid` for the search input inside the popover. */ testIdSearchInput?: string; /** `data-testid` for the popover content container. */ testIdPopoverContent?: string; /** `data-testid` used on the empty state element (no results). */ testIdEmpty?: string; /** `data-testid` for the list container (scrollable element). */ testIdList?: string; /** * Prefix used for option items. Each option will receive a `data-testid` * equal to `${testIdOptionPrefix}-${option.value}`. Defaults to * `combobox-option` when not provided. */ testIdOptionPrefix?: string; /** `data-testid` for the scroll-up button (when scroll indicators enabled). */ testIdScrollUp?: string; /** `data-testid` for the scroll-down button (when scroll indicators enabled). */ testIdScrollDown?: string; } export declare function EnhancedCombobox({ className, disabled, emptyText, error, id, info, label, loading, maxHeight, onSearchChange, onValueChange, options, placeholder, required, searchPlaceholder, showScrollIndicators, value, virtualizeThreshold, testIdTrigger, testIdSearchInput, testIdPopoverContent, testIdEmpty, testIdList, testIdOptionPrefix, testIdScrollUp, testIdScrollDown, }: EnhancedComboboxProps): React.JSX.Element; interface CompanyComboboxProps { companies: Array<{ id?: string; name: string; }>; value?: string; onValueChange: (value: string) => void; onSearchChange: (search: string) => void; loading?: boolean; placeholder?: string; className?: string; maxHeight?: number; showScrollIndicators?: boolean; label?: string; required?: boolean; id?: string; info?: string; error?: string; } export declare function CompanyCombobox({ companies, value, onValueChange, onSearchChange, loading, placeholder, className, maxHeight, showScrollIndicators, label, required, id, info, error, }: CompanyComboboxProps): React.JSX.Element; interface CountryComboboxProps { countries?: Array<{ name: string; code?: string; }> | Array<{ name: string; }>; value?: string; onValueChange: (value: string) => void; onSearchChange?: (search: string) => void; loading?: boolean; placeholder?: string; className?: string; maxHeight?: number; showScrollIndicators?: boolean; label?: string; required?: boolean; id?: string; info?: string; error?: string; } export declare function CountryCombobox({ countries, value, onValueChange, onSearchChange, loading, placeholder, className, maxHeight, showScrollIndicators, label, required, id, info, error, }: CountryComboboxProps): React.JSX.Element; export {};