import * as React from 'react'; export interface SearchableSelectOption { value: string; label: string; /** Optional leading visual for the option row (avatar, icon, badge). */ icon?: React.ReactNode; } export interface SearchableSelectProps { options: SearchableSelectOption[]; /** Currently selected option value; null/undefined when nothing is selected. */ value?: string | null; onValueChange: (value: string) => void; /** Default trigger text while nothing is selected. */ placeholder?: string; /** Placeholder of the search input rendered as the first dropdown item. */ searchPlaceholder?: string; emptyText?: string; loadingText?: string; isLoading?: boolean; disabled?: boolean; /** * Custom trigger node (rendered via Popover.Trigger asChild). When omitted, * a select-like button (Input/SelectTrigger styling, chevron, placeholder) * is rendered. */ trigger?: React.ReactNode; /** Custom option-row renderer; default is icon + label + selected check. */ renderOption?: (option: SearchableSelectOption, isSelected: boolean) => React.ReactNode; align?: 'start' | 'center' | 'end'; /** Classes for the default trigger button. */ className?: string; /** Classes for the popover content (e.g. a fixed width for icon triggers). */ contentClassName?: string; } /** * Select-style dropdown whose first item is a search field filtering the * option list — the pattern used by the ticket assignee picker ("Search * users...") generalized for any entity (devices, users, ...). Provide a * custom `trigger` for icon-button use cases; the default trigger looks and * behaves like `SelectTrigger`. */ export declare function SearchableSelect({ options, value, onValueChange, placeholder, searchPlaceholder, emptyText, loadingText, isLoading, disabled, trigger, renderOption, align, className, contentClassName, }: SearchableSelectProps): React.JSX.Element; //# sourceMappingURL=searchable-select.d.ts.map