/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { CheckMode } from './check-mode';
/**
 * The checkable settings of the TreeView
 * ([see example]({% slug checkboxes_treeview %})).
 *
 * <demo metaUrl="treeview/checkable/basic/" height="610"></demo>
 */
export interface CheckableSettings {
    /**
     * Determines if a checkbox selection is allowed.
     * @default true
     */
    enabled?: boolean;
    /**
     * The available values are:
     * * `"single"`
     * * `"multiple"`
     *
     * @default 'multiple'
     */
    mode?: CheckMode;
    /**
     * Determines whether to automatically check the children nodes.
     * > The option works only together with the multiple selection mode.
     * @default true
     */
    checkChildren?: boolean;
    /**
     * Determines whether to display the indeterminate state for the parent nodes.
     * > The option works only together with the multiple selection mode.
     * @default true
     */
    checkParents?: boolean;
    /**
     * Specifies if on clicking the node, the item will be checked or unchecked.
     * @default false
     */
    checkOnClick?: boolean;
    /**
     * Determines whether disabled children will be checked if their parent is checked.
     * > The option works only together with the multiple selection mode and `checkChildren: true`.
     * @default false
    */
    checkDisabledChildren?: boolean;
    /**
     * Determines whether collapsed children should be unchecked when unchecking their parent.
     * > The option works only together with the multiple selection mode and when [`loadOnDemand`]({% slug api_treeview_treeviewcomponent %}#toc-loadondemand) is `true`.
     * @default false
    */
    uncheckCollapsedChildren?: boolean;
}
