import type { VNode } from 'vue';
export declare type DshCascaderNodeValue = string | number;
export declare type DshCascaderNodePathValue = DshCascaderNodeValue[];
export declare type DshCascaderValue = DshCascaderNodeValue | DshCascaderNodePathValue | (DshCascaderNodeValue | DshCascaderNodePathValue)[];
export declare type DshCascaderConfig = Required<DshCascaderProps>;
export declare type DshExpandTrigger = 'click' | 'hover';
export declare type DshIsDisabled = (data: DshCascaderOption, node: DshNode) => boolean;
export declare type DshIsLeaf = (data: DshCascaderOption, node: DshNode) => boolean;
export declare type DshResolve = (dataList?: DshCascaderOption[]) => void;
export declare type DshLazyLoad = (node: DshNode, resolve: DshResolve) => void;
export declare type DshRenderLabel = ({ node: DshNode, data: DshCascaderOption, }: {
    node: any;
    data: any;
}) => VNode | VNode[];
export interface DshCascaderOption extends Record<string, unknown> {
    label?: string;
    value?: DshCascaderNodeValue;
    children?: DshCascaderOption[];
    disabled?: boolean;
    leaf?: boolean;
}
export interface DshCascaderProps {
    expandTrigger?: DshExpandTrigger;
    multiple?: boolean;
    maxCollapseTags?: number;
    checkStrictly?: boolean;
    emitPath?: boolean;
    lazy?: boolean;
    lazyLoad?: DshLazyLoad;
    value?: string;
    label?: string;
    children?: string;
    disabled?: string | DshIsDisabled;
    leaf?: string | DshIsLeaf;
    hoverThreshold?: number;
}
export declare type Nullable<T> = null | T;
declare type ChildrenData = DshCascaderOption[] | undefined;
declare class DshNode {
    readonly data: Nullable<DshCascaderOption>;
    readonly config: DshCascaderConfig;
    readonly parent?: DshNode | undefined;
    readonly root: boolean;
    readonly uid: number;
    readonly level: number;
    readonly value: DshCascaderNodeValue;
    readonly label: string;
    readonly pathNodes: DshNode[];
    readonly pathValues: DshCascaderNodePathValue;
    readonly pathLabels: string[];
    childrenData: ChildrenData;
    children: DshNode[];
    text: string;
    loaded: boolean;
    /**
     * Is it checked
     *
     * @default false
     */
    checked: boolean;
    /**
     * Used to indicate the intermediate state of unchecked and fully checked child nodes
     *
     * @default false
     */
    indeterminate: boolean;
    /**
     * Loading Status
     *
     * @default false
     */
    loading: boolean;
    constructor(data: Nullable<DshCascaderOption>, config: DshCascaderConfig, parent?: DshNode | undefined, root?: boolean);
    get DshIsDisabled(): boolean;
    get DshIsLeaf(): boolean;
    get valueByOption(): DshCascaderNodeValue | DshCascaderNodePathValue;
    appendChild(childData: DshCascaderOption): DshNode;
    calcText(allLevels: boolean, separator: string): string;
    broadcast(event: string, ...args: unknown[]): void;
    emit(event: string, ...args: unknown[]): void;
    onParentCheck(checked: boolean): void;
    onChildCheck(): void;
    setCheckState(checked: boolean): void;
    doCheck(checked: boolean): void;
}
export default DshNode;
