import { IFuzzyFilterResult } from '../lib/fuzzy-match'; import { Option } from '../types'; export type ComboboxState = { inputValue: string; cursorOffset: number; previousInputValue: string; isOpen: boolean; filteredOptions: Array>; focusedIndex: number; previousSelectedValue: string | undefined; selectedValue: string | undefined; options: Option[]; visibleOptionCount: number; viewportFrom: number; viewportTo: number; isLoading: boolean; error: string | undefined; }; export type ComboboxAction = { type: 'input-insert'; text: string; } | { type: 'input-delete'; } | { type: 'input-delete-forward'; } | { type: 'cursor-left'; } | { type: 'cursor-right'; } | { type: 'cursor-start'; } | { type: 'cursor-end'; } | { type: 'focus-next-option'; } | { type: 'focus-previous-option'; } | { type: 'select-focused'; } | { type: 'autofill-focused'; } | { type: 'close'; } | { type: 'reset'; state: ComboboxState; } | { type: 'sync-options'; options: Option[]; } | { type: 'set-loading'; isLoading: boolean; } | { type: 'set-error'; error: string | undefined; } | { type: 'set-filtered-options'; options: Option[]; }; export declare function comboboxReducer(state: ComboboxState, action: ComboboxAction): ComboboxState; export declare function createDefaultComboboxState(options: { options: Option[]; defaultValue?: string; visibleOptionCount?: number; }): ComboboxState; //# sourceMappingURL=combobox.d.ts.map