import React, { RefObject } from 'react'; import { DropdownOption, OptionDefinition } from '../../internal/components/option/interfaces'; import { OptionsListProps } from '../../internal/components/options-list'; import { FilterProps } from '../parts/filter'; import { ItemProps } from '../parts/item'; import { BaseKeyDetail } from '../../internal/events'; import { CancelableEventHandler, NonCancelableEventHandler } from '../../internal/events/index'; export declare type MenuProps = Omit & { ref: React.RefObject; }; export declare type GetOptionProps = (option: DropdownOption, index: number) => ItemProps; interface UseSelectProps { selectedOptions: ReadonlyArray; updateSelectedOption: (option: OptionDefinition) => void; options: ReadonlyArray; filteringType: string; keepOpen?: boolean; onBlur?: CancelableEventHandler; onFocus?: CancelableEventHandler; externalRef: React.Ref; fireLoadItems: (filteringText: string) => void; setFilteringValue: (filteringText: string) => void; useInteractiveGroups?: boolean; } export interface SelectTriggerProps { ref: RefObject; onMouseDown?: (event: CustomEvent) => void; onKeyDown?: (event: CustomEvent) => void; ariaLabelledby?: string; onFocus: NonCancelableEventHandler; onBlur: NonCancelableEventHandler<{ relatedTarget: Node | null; }>; } export declare function useSelect({ selectedOptions, updateSelectedOption, options, filteringType, onBlur, onFocus, externalRef, keepOpen, fireLoadItems, setFilteringValue, useInteractiveGroups, }: UseSelectProps): { isOpen: boolean; highlightedOption: DropdownOption | undefined; highlightedIndex: number; getTriggerProps: (disabled?: boolean) => SelectTriggerProps; getMenuProps: () => MenuProps; getFilterProps: () => Partial; getOptionProps: (option: DropdownOption, index: number) => any; isKeyboard: React.MutableRefObject; highlightOption: (option: DropdownOption | undefined) => void; selectOption: (option?: DropdownOption | undefined) => void; announceSelected: boolean; }; export {}; //# sourceMappingURL=use-select.d.ts.map