/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { OnDestroy, EventEmitter } from '@angular/core';
import { TreeListComponent } from '../treelist.component';
import { SelectionService } from './selection.service';
import * as i0 from "@angular/core";
/**
* The [`kendoTreeListSelectable`](slug:api_treelist_selectabledirective) state items.
*/
export interface SelectionItem {
/**
* The key that identifies the selected item.
*/
itemKey: any;
/**
* The key that identifies the selected item column. Available in `cell` selection mode.
*/
columnKey?: any;
}
/**
* A directive which controls the selection state. [See example](slug:selection_treelist).
*
* @example
* ```html
*
*
*
*
* ```
* @remarks
* Applied to: {@link TreeListComponent}.
*/
export declare class SelectableDirective implements OnDestroy {
private treelist;
private selectionService;
/**
* @hidden
*/
set selectable(value: any);
/**
* Specifies the selected items.
*/
set selectedItems(value: SelectionItem[]);
/**
* Fires when the selected items are changed.
*/
selectedItemsChange: EventEmitter;
/**
* The field name or a function that specify the dataItems key.
*/
set itemKey(value: string | ((dataItem: any) => any));
/**
* The field name or a function that specify the columns key.
*/
set columnKey(value: string | ((column: any, columnIndex: number) => any));
protected get keyGetter(): any;
protected get columnKeyGetter(): any;
protected subscriptions: any;
protected state: any;
protected _settings: any;
protected lastChange: any[];
protected _columnKeyGetter: any;
protected _keyGetter: any;
private _selectedItems;
constructor(treelist: TreeListComponent, selectionService: SelectionService);
ngOnDestroy(): void;
/**
* @hidden
*/
protected cellSelected(dataItem: any, column: any, columnIndex: number): boolean;
/**
* @hidden
*/
protected rowSelected(dataItem: any): boolean;
protected selectionChange({ action, items }: any): void;
protected emitSelectedItemsChange(): void;
private subscribeSelection;
private unsubscribeSelection;
private updateColumnIndices;
private get leafColumns();
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}