/** * Created by Aneree on 15/01/21. */ import { MutableRefObject, UIEvent } from 'react'; import { Options } from '../../select'; import { SetStateFunc, AllOptionsMap, AsyncSelectProps, LoadOptions, GroupedOptions, GroupConfig } from '../types'; import { Value } from '../../baseui/select/types'; interface UseAsyncOptionHandlersArgs { valueKey: string; isLoading: boolean; minimumInput: number; paginationBuffer?: number; inputRef: MutableRefObject; setIsLoading: SetStateFunc; setOptions: SetStateFunc; setAllOptionsMap: SetStateFunc; loadOptions: LoadOptions; createOption: AsyncSelectProps['createOption']; groupConfig: GroupConfig; selectedOptions?: Value; moveSelectedOptionsToTop: boolean; sortedOptionsRef: MutableRefObject; } declare const useAsyncOptionHandlers: ({ inputRef, valueKey, isLoading, setOptions, sortedOptionsRef, loadOptions, minimumInput, setIsLoading, paginationBuffer, setAllOptionsMap, createOption: propsCreateOption, groupConfig, selectedOptions, moveSelectedOptionsToTop, }: UseAsyncOptionHandlersArgs) => { onPaginate: (event: UIEvent, itemGroup?: string) => void; onInputChange: () => void; fetchOptions: (itemGroups: { group: string; pageNumber: number; }[]) => Promise; createOption: ((label: string) => Promise) | undefined; resultCountMap: Record; }; export { useAsyncOptionHandlers };