import { InjectionKey, Ref } from 'vue'; import { SelectOptionT } from '../select'; import { CascaderV2NodePathT, CascaderV2LazyNodeT } from './types'; /** * 级联选择器(CascaderV2)父子组件通信注入键 * * 由 `OCascaderV2` / `OCascaderV2Panel` 在 setup 中 `provide`, * 内部子组件(如 OCascaderV2Label、各级菜单项)通过 `inject(cascaderV2InjectKey)` 读取选中态、 * 触发选中或控制浮层。基于此 InjectionKey 可在外部对 Panel 进行二次封装。 */ export declare const cascaderV2InjectKey: InjectionKey<{ /** 当前选中值数组;单选时仅含一项,多选时含全部选中节点 */ selectValue: Ref>; /** 是否为多选模式 */ multiple: boolean; /** 是否允许选中任意层级节点(父子节点勾选互不关联) */ allowSelectAnyNode: boolean; /** 筛选输入框的当前值 */ filterValue: Ref; /** 是否处于选中处理流程中(用于禁用重复触发) */ isSelecting: Ref; /** 整体加载状态 */ loading: Ref; /** 单个节点的选中处理,传入选项与节点路径 */ doSelect: (option: SelectOptionT, path?: CascaderV2NodePathT) => Promise; /** 批量选中处理,`toAdd` 为新增选项列表,`toRemove` 为要移除的 value 列表 */ doSelectBatch: (toAdd: Array<{ value: string | number; label: string; path: CascaderV2NodePathT; }>, toRemove: Array) => void; /** 子菜单项挂载时注册到父级,便于按 value 查找选项 */ registerOption: (option: SelectOptionT) => void; /** 注册 value → 路径的映射,供路径展示与回显使用 */ registerPath: (value: string | number, path: CascaderV2NodePathT) => void; /** 关闭下拉浮层 */ hidePanel: () => void; /** 打开下拉浮层 */ showPanel: () => void; /** 设置根节点的加载态(懒加载根列表时使用) */ setRootLoading: (v: boolean) => void; /** 懒加载失败时的统一回调,对外触发 `lazyload-error` 事件 */ onLazyloadError: (node: CascaderV2LazyNodeT) => void; }>;