/** A searchable-select option: stable id + label, optional secondary line. */ export interface ComboboxOption { value: string; label: string; description?: string; } /** * Merge option groups by value, later groups winning. Used to splice the * currently-selected record (fetched by id) into the searched list page so * the selection keeps its label even when it falls outside the page. */ export declare function mergeUniqueOptions(...groups: Array): ComboboxOption[]; /** * Server-search-backed combobox shared by the legal admin dialogs: the * option list comes from a domain list hook (re-queried via * `onSearchChange`), the selected record's label from a matching detail * hook merged in via {@link mergeUniqueOptions}. */ export declare function SearchableSelect({ value, onChange, options, placeholder, searchPlaceholder, emptyLabel, loadingLabel, loading, disabled, onSearchChange, }: { value: string | null | undefined; onChange: (value: string | null) => void; options: ComboboxOption[]; placeholder: string; searchPlaceholder?: string; emptyLabel: string; loadingLabel: string; loading?: boolean; disabled?: boolean; onSearchChange?: (value: string) => void; }): import("react").JSX.Element;