export interface UseSelectionStateParams { items: T[]; getItemId: (item: T) => string; value: string[]; onChange: (ids: string[]) => void; /** Set of itemIds that cannot be toggled and are excluded from selectAll. */ disabledIds?: Set; } export interface ToggleItemOptions { shiftKey?: boolean; } export interface UseSelectionStateResult { itemIds: string[]; enabledItemIds: string[]; selectedIds: Set; isSelected: (id: string) => boolean; isAllSelected: boolean; isIndeterminate: boolean; toggleItem: (id: string, opts?: ToggleItemOptions) => void; selectAll: () => void; clear: () => void; } export declare const useSelectionState: ({ items, getItemId, value, onChange, disabledIds, }: UseSelectionStateParams) => UseSelectionStateResult;