/**-----------------------------------------------------------------------------------------
* 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 { GanttComponent } from '../gantt.component';
import * as i0 from "@angular/core";
/**
 * A directive which handles the [`selectionChange`]({% slug api_gantt_ganttcomponent %}#toc-selectionchange) event of the Gantt
 * ([see example]({% slug selection_gantt %}#toc-built-in-directive))
 */
export declare class SelectableDirective implements OnDestroy {
    private gantt;
    /**
     * @hidden
     */
    set selectable(value: boolean);
    /**
     * Sets the selected keys.
     */
    set selectedKeys(value: any[]);
    /**
     * Fires when the selected keys are changed.
     */
    selectedKeysChange: EventEmitter<any[]>;
    /**
     * The field name or a function that specifies the data item unique key identifier.
     * By default, the string field `id` is used.
     */
    set itemKey(value: string | ((dataItem: any) => any));
    private get keyGetter();
    private selectionSubscription;
    private state;
    private lastChange;
    private _keyGetter;
    constructor(gantt: GanttComponent);
    ngOnDestroy(): void;
    private isSelected;
    private selectionChange;
    private emitSelectedItemsChange;
    private subscribeSelection;
    private unsubscribeSelection;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectableDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SelectableDirective, "[kendoGanttSelectable]", ["kendoGanttSelectable"], { "selectable": { "alias": "selectable"; "required": false; }; "selectedKeys": { "alias": "selectedKeys"; "required": false; }; "itemKey": { "alias": "itemKey"; "required": false; }; }, { "selectedKeysChange": "selectedKeysChange"; }, never, never, true, never>;
}
