import { h } from 'vue' import type { VNode } from 'vue' import type { ElementUIComponent } from './component' type H = typeof h /** Trigger mode of expanding current item */ export type ExpandTrigger = 'click' | 'hover' /** Cascader Option */ export interface CascaderOption { label: string value: any children?: CascaderOption[] disabled?: boolean leaf?: boolean } /** Cascader Props */ export interface CascaderProps { expandTrigger?: ExpandTrigger multiple?: boolean checkStrictly?: boolean emitPath?: boolean lazy?: boolean lazyLoad?: (node: CascaderNode, resolve: Resolve) => void value?: string label?: string children?: string disabled?: string leaf?: string } /** Cascader Node */ export interface CascaderNode { uid: number data: D value: V label: string level: number isDisabled: boolean isLeaf: boolean parent: CascaderNode | null children: CascaderNode[] config: CascaderProps } type Resolve = (dataList?: D[]) => void export interface CascaderPanelSlots { /** Custom label content */ default: VNode[] [key: string]: VNode[] } /** CascaderPanel Component */ export declare class ElCascaderPanel extends ElementUIComponent { /** Selected value */ value: V | V[] /** Data of the options */ options: D[] /** Configuration options */ props: CascaderProps /** Whether to add border */ border: boolean /** Render function of custom label content */ renderLabel: (h: H, context: { node: CascaderNode; data: D; }) => VNode $slots: CascaderPanelSlots }