import { EventEmitter } from '../../stencil-public-runtime';
import { ObservableMap } from '@stencil/store';
import { TREE_CHECKED_ITEMS_MODES, TREE_SELECTABLE_MODES } from "../../utils/enums";
import { NavigationStoreState } from './utils/tree-store';
import { SlTreeCheckedItem } from './utils/types';
export declare class SlTree {
    el: HTMLSlTreeElement;
    private setInvokeSelectedCallback;
    private callSelectedAction;
    /** Whether multiple tree accordions can be open at the same time. */
    keepOpen: boolean;
    /**
     * Selection mode:
     * - none: no checkboxes
     * - leaves: checkboxes only on leaf items (no children)
     * - all: checkboxes on all items; selecting a parent selects/deselects all its leaves
     */
    selectable: TREE_SELECTABLE_MODES | `${TREE_SELECTABLE_MODES}`;
    /**
     * Controls what is included in the checkedItems array emitted on selection change:
     * - leaves (default): only leaf items (no children)
     * - all: leaf items AND parent items that are fully checked
     */
    checkedItemsMode: TREE_CHECKED_ITEMS_MODES | `${TREE_CHECKED_ITEMS_MODES}`;
    /**
     * Callback that will fire when any item checkbox changes, with all currently checked leaf items.
     */
    selectedCallback?: ((checkedItems: SlTreeCheckedItem[]) => void) | string;
    /**
     * Event that will fire when any item checkbox changes, with all currently checked leaf items.
     */
    selectedEvent: EventEmitter<SlTreeCheckedItem[]>;
    /** Global store of sl-tree component */
    store: ObservableMap<NavigationStoreState>;
    selectableChanged(): void;
    keepOpenChanged(): void;
    selectedCallbackChanged(): void;
    constructor();
    componentWillLoad(): void;
    private setChecked;
    /**
     * Walks up the ancestor chain from `fromElement` and recomputes
     * checked/indeterminate state for each sl-tree-item ancestor.
     * Only the affected branch is updated — O(depth) instead of O(n²).
     */
    private updateAncestors;
    private emitCheckedItems;
    /** Called when any item checkbox changes; isLeaf=false means cascade to all leaf descendants */
    private onItemChecked;
    render(): any;
}
