/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
/**
 * The settings for the selection functionality of the TreeList.[See example](slug:selection_treelist#toc-setup).
 */
export interface SelectableSettings {
    /**
     * Specifies the selection mode.
     */
    mode?: 'cell' | 'row';
    /**
     * Specifies if multiple selection is enabled.
     */
    multiple?: boolean;
    /**
     * Specifies the drag selection options.
     */
    drag?: boolean | {
        snap: boolean;
    };
    /**
     * Specifies if the selection functionality is enabled.
     * Setting this option to `false` will stop all selection-related functionality.
     * The end user will not be able to select and deselect rows or cells.
     * Items in the [selectedItems]({% slug api_treelist_selectabledirective %}#toc-selecteditems) collection will not be rendered as selected.
     * The [isSelected]({% slug api_treelist_treelistcomponent %}#toc-isselected) callback will be ignored.
     */
    enabled?: boolean;
    /**
     * Determines if the selection is performed only through clicking a checkbox.
     * If enabled, clicking the row itself will not select the row.
     * Applicable if at least one checkbox column is present.
     */
    checkboxOnly?: boolean;
    /**
     * Setting this option to `true` prevents the end user from selecting and deselecting items.
     * When the selection functionality is enabled and `readonly` is set to `true`,
     * programmatic selection is still possible by using the [selectedItems]({% slug api_treelist_selectabledirective %}#toc-selecteditems) collection
     * or the [isSelected]({% slug api_treelist_treelistcomponent %}#toc-isselected) callback.
     */
    readonly?: boolean;
}
