/** * A "selection mode" state machine for a multi-select list (files, table rows, …): * enter a mode, toggle items, select-or-clear all, exit. Agnostic — items are * string ids, no domain coupling. Pairs with any list that renders a selection * overlay from `selected` (e.g. ``). * * It is the reusable LOGIC behind a gated-delete file field; the action bar, the * layout, and the confirm Dialog are presentation the consumer composes locally. */ export interface SelectionMode { /** Whether selection mode is active. */ active: boolean; /** The currently-selected ids. */ selected: ReadonlySet; enter: () => void; /** Leave selection mode AND clear the selection. */ exit: () => void; toggle: (id: string) => void; /** Select all `ids` when they aren't all already selected, else clear (stay in mode). */ toggleAll: (ids: readonly string[]) => void; } export declare function useSelectionMode(): SelectionMode;