import React, { ReactNode } from 'react';
import { type ValueToOption } from '../util/helper';
import type { SelectKeysType, SelectOption, SelectOptionGroup, SelectValue } from '../type';
export declare function isSelectOptionGroup(option: SelectOption): option is SelectOptionGroup;
export declare const flattenOptions: (options?: SelectOption[]) => any[];
type OptionValueType = SelectValue<SelectOption>;
declare function useOptions(keys: SelectKeysType, options: SelectOption[], children: ReactNode, valueType: 'object' | 'value', value: OptionValueType, reserveKeyword: boolean): {
    currentOptions: SelectOption[];
    setCurrentOptions: React.Dispatch<React.SetStateAction<SelectOption[]>>;
    tmpPropOptions: SelectOption[];
    setTmpPropOptions: React.Dispatch<React.SetStateAction<SelectOption[]>>;
    valueToOption: ValueToOption;
    setValueToOption: React.Dispatch<React.SetStateAction<ValueToOption>>;
    selectedOptions: SelectOption[];
    setSelectedOptions: React.Dispatch<React.SetStateAction<SelectOption[]>>;
    flattenedOptions: SelectOption[];
};
export default useOptions;
