import { AtomMut } from '@reatom/framework'; import React from 'react'; import { GetGroupsResult } from '../../../utils/getGroups'; import { PropsWithDefault } from '../../SelectCanary/defaultProps'; import { SelectGroupDefault, SelectItemDefault } from '..'; import { CountedGroup, Group, SelectAllItem } from '../types'; type IndexForHighlight = number | ((oldIndex: number) => number); export type OptionForCreate = { label: string; __optionForCreate: boolean; }; export type UseSelectProps = { propsAtom: AtomMut>; }; export type OptionProps = { index: number; item: ITEM | OptionForCreate | SelectAllItem; }; export type GetOptionPropsResult = { onClick: (e: React.MouseEvent) => void; onMouseEnter: (e: React.MouseEvent) => void; }; export declare const isOptionForCreate: (params: OptionForCreate | Group | ITEM) => params is OptionForCreate; export declare const isNotOptionForCreate: (params: OptionForCreate | Group) => params is Group; export declare const isOptionForSelectAll: (params: SelectAllItem | ITEM) => params is SelectAllItem; export declare function getCountedGroups(groups: GetGroupsResult, selectAll: boolean): CountedGroup[]; export declare const useSelect: ({ propsAtom, }: UseSelectProps) => { openAtom: AtomMut; focusAtom: AtomMut; inputValueAtom: AtomMut; clearButtonAtom: AtomMut; onInput: import("@reatom/framework").Fn<[value?: string | undefined], void>; getOptionActions: import("@reatom/framework").Fn<[OptionProps], GetOptionPropsResult>; handleInputBlur: import("@reatom/framework").Fn<[e: React.FocusEvent], void>; handleToggleDropdown: import("@reatom/framework").Fn<[], void>; getHandleRemoveValue: import("@reatom/framework").Fn<[item: ITEM], (e: React.SyntheticEvent) => void>; inputRef: React.RefObject; dropdownRef: React.RefObject; controlRef: React.RefObject; handleInputChange: import("@reatom/framework").Fn<[e: React.ChangeEvent], void>; handleInputClick: import("@reatom/framework").Fn<[], void>; handleInputFocus: import("@reatom/framework").Fn<[e: React.FocusEvent], void>; visibleItemsAtom: AtomMut<(OptionForCreate | CountedGroup)[]>; clearValue: import("@reatom/framework").Fn<[e: React.SyntheticEvent], void>; optionsRefs: React.RefObject[]; highlightedIndexAtom: AtomMut; valueAtom: AtomMut; getItemKeyAtom: AtomMut>; onChangeAll: import("@reatom/framework").Fn<[e: React.SyntheticEvent, items: ITEM[]], void>; highlightIndex: import("@reatom/framework").Fn<[indexForHighlight: IndexForHighlight], void>; onCreate: import("@reatom/framework").Fn<[e: React.SyntheticEvent], void>; onChange: import("@reatom/framework").Fn<[e: React.SyntheticEvent, item: ITEM], void>; hasItemsAtom: AtomMut; groupsCounterAtom: AtomMut>; dropdownZIndexAtom: AtomMut; }; export {};