import { type ListOption } from './list-option'; import { type SvEditorProps } from './editor-contract'; import type { Snippet } from 'svelte'; /** User-facing strings (localizable via `messages`). */ type ComboMessages = { noResults: string; loading: string; typeMore: string; }; type Props = SvEditorProps & { options?: ReadonlyArray; value?: string | number | null; onChange?: (value: string | number | null) => void; placeholder?: string; autoOpen?: boolean; /** Show a clear (x) button when a value is selected. */ clearable?: boolean; /** Show a bottom drag grip so the user can resize the open panel's height * (hidden when the panel flips upward, where there is no room to grow). */ resizable?: boolean; /** Load options from a server as the user types (debounced). Disables local * filtering; the returned list is shown as-is. */ loadOptions?: (query: string) => Promise; /** Min chars before a remote search fires. Default 1. */ minLength?: number; /** Debounce (ms) before a remote search fires. Default 250. */ debounce?: number; /** Override the built-in strings (empty-state / loading text). */ messages?: Partial; /** Custom render for each option (receives the ListOption). */ item?: Snippet<[ListOption]>; /** Content pinned above the option list. */ header?: Snippet; /** Content pinned below the option list. */ footer?: Snippet; /** Shown when the (non-loading) list is empty; overrides the default text. */ noData?: Snippet; }; declare const SvComboBox: import("svelte").Component; type SvComboBox = ReturnType; export default SvComboBox;