import type { Reducer } from 'react'; export interface MultipleSelectorItem { id: TId; removable?: boolean; } export type MultipleSelectorReducer = Reducer, MultipleSelectorStateAction>; export interface MultipleSelectorStateInitializerArgs { items: TItem[]; selectedIds?: Array; } export interface MultipleSelectorState { items: TItem[]; selectedIds: Array; containsRemovableSelection: boolean; } export interface MultipleSelectorStateAction { reduce(state: Readonly>): Readonly>; } export declare function initializeMultipleSelectorState({ items, selectedIds, }: MultipleSelectorStateInitializerArgs): MultipleSelectorState; export declare function reduceMultipleSelectorState(state: Readonly>, action: MultipleSelectorStateAction): Readonly>; declare class ClearSelectionAction implements MultipleSelectorStateAction { reduce(state: Readonly>): Readonly>; } declare class SetSelectionAction implements MultipleSelectorStateAction { private readonly selectedIds; constructor(selectedIds: string[]); reduce(state: Readonly>): Readonly>; } declare class ToggleItemAction implements MultipleSelectorStateAction { private readonly id; constructor(id: TItem['id']); reduce(state: Readonly>): Readonly>; } declare class UpdateItemsAction, TId extends string = string> implements MultipleSelectorStateAction { private readonly items; constructor(items: TItem[]); reduce(state: Readonly>): Readonly>; } export declare const MultipleSelectorStateActions: { ClearSelection: typeof ClearSelectionAction; SetSelection: typeof SetSelectionAction; ToggleItem: typeof ToggleItemAction; UpdateItems: typeof UpdateItemsAction; }; export {};