import { ExpandableItemState, ExpandableListViewItemProps } from '../../types/listView'; interface UseExpandableListViewItemResult { expandableRowProps: object; cellProps: object; expandableContainerProps: object; expandableItemState: ExpandableItemState; } interface UseExpandableListViewItem { /** * This hook wraps the useListItem hook, and modifies it, * providing expansion capabilities and the option for * escaping the focus of the ListView grid. * * Returns four objects, three of which are spread into subcomponents, * the fourth provides state handing props. * @param {Object} [props] Properties provided to the underlying hooks * @param {Boolean} [props.isFocusable] whether or not the option is focusable * @param {Boolean} [props.isHoverable] whether or not the option is hoverable * @param {ReactRef} [props.expandableChildrenRef] the container of all of the expandable content * @param {ReactRef} [props.expandableItemRowRef] the container of for the entire item * @param {String} [props.className] custom css classname applied to the row * @param {Object} [props.state] state prop passed from useTreeState. handles expansion * @param {Object} [props.item] item object. * * @returns {Object} {expandableRowProps}: props spread into the entire row container * @returns {Object} {cellProps}: props spread into the non-expanded content cell * @returns {Object} {expandableContainerProps}: spread into the expanded content cell * @returns {Object} {state}: expansion, focus, and additonal cell props */ (props: ExpandableListViewItemProps): UseExpandableListViewItemResult; } declare const useExpandableListViewItem: UseExpandableListViewItem; export default useExpandableListViewItem;