import React, { RefObject } from 'react'; import { InternalDropdownProps } from '../../dropdown/internal'; import { ButtonTriggerProps } from '../../internal/components/button-trigger'; import { DropdownOption } from '../../internal/components/option/interfaces'; import { OptionsListProps } from '../../internal/components/options-list'; import { DropdownStatusProps } from '../../types/dropdown-status'; import { NonCancelableEventHandler } from '../../types/events'; import { OptionDefinition } from '../../types/option'; import { SelectProps } from '../interfaces'; 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; dropdownRole?: SelectProps.DropdownRole; } 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, dropdownRole }: 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; closeDropdown: () => void; dialogId: string; focusActiveRef: () => void; }; export {};