export declare type valuePathOrFunc<T> = ((item: T) => any);
export default class AtomSelectableList<T> {
    allowMultipleSelection: boolean;
    valuePath?: valuePathOrFunc<T>;
    labelPath?: valuePathOrFunc<T>;
    readonly items: Array<ISelectableItem<T>>;
    readonly selectedItems: Array<ISelectableItem<T>>;
    selectedIndex: number;
    selectedItem: T;
    readonly label: any;
    selectAll: boolean;
    private mValue;
    value: any;
    constructor(allowMultipleSelection?: boolean, valuePath?: valuePathOrFunc<T>, labelPath?: valuePathOrFunc<T>);
    replace(source: T[], start?: number, size?: number): void;
    find(item: T | ((i: T) => boolean)): ISelectableItem<T>;
    select(item: T | ISelectableItem<T>): void;
    deselect(item: T | ISelectableItem<T>): void;
    toggle(item: T | ISelectableItem<T>): void;
    private newItem;
    private clearSelection;
}
export interface ISelectableItem<T> {
    selected: boolean;
    item: T;
    itemType: any;
    select: () => void;
    deselect: () => void;
    toggle: () => void;
}
//# sourceMappingURL=AtomSelectableList.d.ts.map