type GetKey = (item: ITEM) => string | number; type GetOnChange = (item: ITEM) => (e: EVENT) => void; type GetChecked = (item: ITEM) => boolean; type UseChoiceGroupValues = { getOnChange: GetOnChange; getChecked: GetChecked; }; export type CallbackWithMultiple = (value: ITEM[] | null, props: { e: EVENT; }) => void; export type CallbackWithoutMultiple = (value: ITEM, props: { e: EVENT; }) => void; type PropsWithMultiple = { multiple: true; value: ITEM[] | null; callBack?: CallbackWithMultiple; }; type PropsWithoutMultiple = { multiple: false; value: ITEM | null; callBack?: CallbackWithoutMultiple; }; type CommonProps = { getKey: GetKey; }; type UseChoiceGroupProps = CommonProps & (PropsWithMultiple | PropsWithoutMultiple); export declare function useChoiceGroup(props: UseChoiceGroupProps): UseChoiceGroupValues; export {};