/**-----------------------------------------------------------------------------------------
* 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 { ExpandableTreeComponent } from './expandable-tree-component';
import * as i0 from "@angular/core";
/**
 * A directive which controls the expanded state of the items. [See example](slug:treelist_expanded_state#toc-built-in-directive).
 *
 * @example
 * ```html
 * <kendo-treelist ...
 *   [kendoTreeListFlatBinding]="data"
 *   kendoTreeListExpandable> ...
 * </kendo-treelist>
 * ```
 */
export declare class ExpandableDirective implements OnDestroy {
    private component;
    /**
     * Fires when the expandedKeys are changed.
     */
    expandedKeysChange: EventEmitter<any>;
    /**
     * Sets the expanded item keys.
     */
    set expandedKeys(value: any[]);
    get expandedKeys(): any[];
    /**
     * Specifies if the items should be initially expanded.
     * @default false
     */
    initiallyExpanded: boolean;
    /**
     * Defines the item key that will be stored in the expandedKeys collection.
     * Defaults to the component idField.
     */
    set expandBy(key: string | ((dataItem: any) => any));
    protected get keyGetter(): any;
    protected subscriptions: any;
    protected state: any;
    protected _expandBy: any;
    protected _expandedKeys: any[];
    constructor(component: ExpandableTreeComponent);
    /**
     * @hidden
     */
    isExpanded(item: any): boolean;
    ngOnChanges(changes: any): void;
    ngOnDestroy(): void;
    private toggleState;
    static ɵfac: i0.ɵɵFactoryDeclaration<ExpandableDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ExpandableDirective, "[kendoTreeListExpandable]", ["kendoTreeListExpandable"], { "expandedKeys": { "alias": "expandedKeys"; "required": false; }; "initiallyExpanded": { "alias": "initiallyExpanded"; "required": false; }; "expandBy": { "alias": "expandBy"; "required": false; }; }, { "expandedKeysChange": "expandedKeysChange"; }, never, never, true, never>;
}
