import type { ReactSetState } from "../use-safe-state/index.cjs"; export interface UseMultiSelectReturnsState { /** * The selected items */ selected: T[]; /** * Whether none of the items are selected */ isNoneSelected: boolean; /** * Whether all of the items are selected */ isAllSelected: boolean; /** * Whether some of the items are selected */ isPartiallySelected: boolean; } export interface UseMultiSelectReturnsActions { /** * Whether the item is selected */ isItemSelected: (item: T) => boolean; /** * Set the selected items */ setSelected: ReactSetState; /** * Select the item */ select: (item: T) => void; /** * Select all items */ selectAll(): void; /** * Unselect the item * * @deprecated Use `unselect` instead */ unSelect: (item: T) => void; /** * Unselect all items * * @deprecated Use `unselectAll` instead */ unSelectAll(): void; /** * Unselect the item * * @since 1.7.0 */ unselect: (item: T) => void; /** * Unselect all items * * @since 1.7.0 */ unselectAll(): void; /** * Toggle the item */ toggle: (item: T) => void; /** * Toggle all items */ toggleAll(): void; } export type UseMultiSelectReturns = readonly [UseMultiSelectReturnsState, UseMultiSelectReturnsActions]; /** * A React Hook that manages multi-select state. */ export declare function useMultiSelect(items: T[], defaultSelected?: T[]): UseMultiSelectReturns;