import { ListItem, OperateOnOneItemFn } from "./types";
/** @immutable */
export declare class SelectionModel {
    private selected;
    private readonly singleSelectionMode;
    /** @immutable */
    constructor(initialSelected: ListItem[], singleSelectionMode: boolean);
    /** @immutable */
    clearAllSelections: () => SelectionModel;
    /** @immutable */
    toggleSelectionFor: (selectedItem: ListItem, onSelect: OperateOnOneItemFn, onUnselect: OperateOnOneItemFn) => SelectionModel;
    /**
     * @immutable
     * https://stackoverflow.com/a/20070691/2085356
     */
    getSelection: () => ListItem[];
    isItemSelected: (query: ListItem) => boolean;
    toString: () => string;
}
