import React, { RefObject } from 'react'; import { InternalDropdownProps } from '../../dropdown/internal'; import { ButtonTriggerProps } from '../../internal/components/button-trigger'; import { DropdownStatusProps } from '../../internal/components/dropdown-status'; import { DropdownOption, OptionDefinition } from '../../internal/components/option/interfaces'; import { OptionsListProps } from '../../internal/components/options-list'; import { NonCancelableEventHandler } from '../../internal/events'; import { FilterProps } from '../parts/filter'; import { ItemProps } from '../parts/item'; export type MenuProps = Omit & { ref: React.RefObject; }; export type GetOptionProps = (option: DropdownOption, index: number) => ItemProps; interface UseSelectProps { selectedOptions: ReadonlyArray; updateSelectedOption: (option: OptionDefinition) => void; options: ReadonlyArray; filteringType: string; keepOpen?: boolean; embedded?: boolean; onBlur?: NonCancelableEventHandler; onFocus?: NonCancelableEventHandler; externalRef: React.Ref; fireLoadItems: (filteringText: string) => void; setFilteringValue?: (filteringText: string) => void; useInteractiveGroups?: boolean; statusType: DropdownStatusProps.StatusType; isAllSelected?: boolean; isSomeSelected?: boolean; toggleAll?: () => void; } export interface SelectTriggerProps extends ButtonTriggerProps { ref: RefObject; } export declare function useSelect({ selectedOptions, updateSelectedOption, options, filteringType, onBlur, onFocus, externalRef, keepOpen, embedded, fireLoadItems, setFilteringValue, useInteractiveGroups, statusType, isAllSelected, isSomeSelected, toggleAll }: UseSelectProps): { isOpen: boolean; highlightedOption: DropdownOption | undefined; highlightedIndex: number; highlightType: import("../../internal/components/options-list/utils/use-highlight-option").HighlightType; getTriggerProps: (disabled?: boolean, autoFocus?: boolean) => SelectTriggerProps; getDropdownProps: () => Pick; getMenuProps: () => MenuProps; getFilterProps: () => Partial; getOptionProps: (option: DropdownOption, index: number) => any; highlightOption: (option: DropdownOption) => void; selectOption: (option?: DropdownOption) => void; announceSelected: boolean; dialogId: string; focusActiveRef: () => void; }; export {};