import { CascaderValueT, CascaderOptionT } from './types';
export interface CascaderNodeT {
    value: string | number;
    label?: string;
    depth: number;
    parent: CascaderNodeT | null;
    children: CascaderNodeT[];
    isLeaf: boolean;
    fullLabel: string;
    fullPath: Array<string | number>;
    disabled?: boolean;
}
export interface ColumnInfoT {
    value: string | number;
    label?: string;
    depth: number;
    isLeaf: boolean;
    isActive?: boolean;
    hasActiveChild?: boolean;
    parent: CascaderNodeT | null;
    fullLabel: string;
    fullPath: Array<string | number>;
    disabled?: boolean;
}
export default class CascaderTree {
    root: CascaderNodeT;
    map: Map<string | number, CascaderNodeT>;
    leafNodes: Array<CascaderNodeT>;
    constructor();
    /** 更新树结构，生成CascaderNodeT类型的数据 */
    updateTree(options: Array<CascaderOptionT>, lazy?: boolean): void;
    /** 为指定父节点动态添加子节点（用于懒加载） */
    addChildren(parentValue: string | number | null, children: Array<CascaderOptionT>, lazy?: boolean): void;
    getNode(val: string | number): CascaderNodeT | undefined;
    /**
     * 根据选中的叶子节点值获取级联选择器每栏应该渲染的数据
     * @param val 选中的叶子节点值
     * @param lazy 是否懒加载模式，懒加载下选中非叶子节点时额外追加其子列
     * @returns 级联选择器每栏的数据
     */
    getPanelInfo(val: CascaderValueT | undefined, lazy?: boolean): ColumnInfoT[][];
    /**
     * 根据当前选中的节点，获取当前列的信息
     * @param node 当前选中的节点的父节点
     * @param activeVal 当前选中的节点的value
     * @returns 当前节点的可选项数据
     */
    getColumnInfo(node: CascaderNodeT, activeVal?: Array<string | number>): Array<ColumnInfoT>;
    getLeafNodes(): CascaderNodeT[];
}
