import { EventEmitter } from '../../stencil-public-runtime';
import type { TreeNode } from '../Tree/Tree';
/**
 * TreeSelect 树形选择器
 * 类似 Select，但下拉选项以树形结构展示，支持单选与多选
 */
export declare class TreeSelect {
    el: HTMLElement;
    /**
     * 可选项数据源（与 Tree 相同的递归树结构）
     */
    data: TreeNode[];
    /**
     * （受控）绑定值，单选为 string，多选为 string[]
     */
    modelValue: string | string[];
    /**
     * 是否多选
     * @default false
     */
    multiple: boolean;
    /**
     * 占位文本
     * @default '请选择'
     */
    placeholder: string;
    /**
     * 是否禁用
     * @default false
     */
    disabled: boolean;
    /**
     * 是否显示 checkbox（多选模式下推荐开启）
     * @default false
     */
    checkable: boolean;
    /**
     * 是否默认展开全部节点
     * @default false
     */
    defaultExpandAll: boolean;
    isOpen: boolean;
    internalExpanded: string[];
    internalSelected: string[];
    internalChecked: string[];
    /**
     * 值变化事件（单选为 string，多选为 string[]）
     */
    hbChange: EventEmitter<string | string[]>;
    /**
     * 下拉浮层显隐变化事件
     */
    hbVisibleChange: EventEmitter<boolean>;
    private clickOutside;
    componentWillLoad(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    private syncFromModelValue;
    private collectExpandableKeys;
    private findTitle;
    private getDisplayText;
    private openDropdown;
    private closeDropdown;
    private toggleDropdown;
    private handleNodeSelect;
    private handleNodeCheck;
    private handleToggleExpand;
    private handleClear;
    private renderNode;
    render(): any;
}
