/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { EventEmitter, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
import { TreeViewComponent } from '../treeview.component';
import { SelectableSettings } from './selectable-settings';
import { Subscription } from 'rxjs';
import { TreeItem } from '../treeitem.interface';
import { NavigationService } from '../navigation/navigation.service';
import * as i0 from "@angular/core";
/**
 * A directive which manages the in-memory selection state of the TreeView node
 * ([see example]({% slug selection_treeview %})).
 */
export declare class SelectDirective implements OnDestroy, OnChanges {
    protected treeView: TreeViewComponent;
    private navigationService;
    /**
     * @hidden
     */
    set isSelected(value: (item: object, index: string) => boolean);
    /**
     * Defines the item key that will be stored in the `selectedKeys` collection.
     */
    selectKey: string | ((context: TreeItem) => any);
    /**
     * Defines the current selection mode
     * ([see example](slug:selection_treeview#toc-modes)).
     */
    selection: boolean | SelectableSettings | string;
    /**
     * Defines the collection that will store the selected keys
     * ([see example](slug:selection_treeview#toc-modes)).
     */
    selectedKeys: any[];
    /**
     * Fires when the `selectedKeys` collection was updated.
     */
    selectedKeysChange: EventEmitter<any[]>;
    get getAriaMultiselectable(): boolean;
    protected subscriptions: Subscription;
    private get options();
    private selectActions;
    /**
     * Reflectes the internal `selectedKeys` state.
     */
    private state;
    /**
     * Holds the last emitted `selectedKeys` collection.
     */
    private lastChange;
    constructor(treeView: TreeViewComponent, navigationService: NavigationService);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    protected itemKey(e: any): any;
    protected select(e: any): void;
    protected selectSingle(node: any): void;
    protected selectMultiple(node: any): void;
    private notify;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SelectDirective, "[kendoTreeViewSelectable]", never, { "isSelected": { "alias": "isSelected"; "required": false; }; "selectKey": { "alias": "selectBy"; "required": false; }; "selection": { "alias": "kendoTreeViewSelectable"; "required": false; }; "selectedKeys": { "alias": "selectedKeys"; "required": false; }; }, { "selectedKeysChange": "selectedKeysChange"; }, never, never, true, never>;
}
