/// <reference types="react" />
/**
 * @typedef {Object} CheckboxesManagement
 * @property {boolean[]} items - checkboxes array state
 * @property {boolean} areAllChecked - property is true when all the checkboxes are checked
 * @property {boolean} areAllUnChecked - property is true when all the checkboxes are unchecked
 * @property {boolean} areSomeChecked - property is true when some the checkboxes are checked, except cases of all or no one
 * @property {function} setCheckboxItems - set new values to the checkboxes
 * @property {function} setAllChecked - set all the checkboxes to checked state
 * @property {function} setAllUnchecked - set all the checkboxes to unchecked state
 * @property {function} setValueByIndex - set checkbox by index into the specific value
 * @property {function} toggleValueByIndex - set checkbox by index into the opposite value
 */
/**
 * Provides state and actions for checkboxes management
 * Example:
 ```
  const {
    items,
    areAllChecked,
    areAllUnChecked,
    areSomeChecked,
    setCheckboxItems,
    setAllChecked,
    setAllUnChecked,
    setValueByIndex,
    toggleValueByIndex
  } = useCheckboxCellsState();

  return (
    <TableWithCheckbox
      checkboxesState={items}
      onSelectAllCheckboxes={setAllChecked}
      setCheckboxByIndex={setValueByIndex}
      toggleCheckboxByIndex={toggleValueByIndex}
    />
  );
 ```
* @param {boolean[]} initialItems
* @returns {CheckboxManagement}
 */
export default function useCheckboxCellsState(initialItems?: Array<boolean>): {
    items: boolean[];
    areAllChecked: boolean;
    areAllUnChecked: boolean;
    areSomeChecked: boolean;
    setCheckboxItems: import("react").Dispatch<import("react").SetStateAction<boolean[]>>;
    setAllChecked: () => void;
    setAllUnChecked: () => void;
    setValueByIndex: (value: boolean, index: number) => void;
    toggleValueByIndex: (index: number) => void;
};
