import type { InjectionKey, PropType, Ref } from 'vue';
import type { ExtractPublicPropTypes } from '../_util/interface';
import { type CheckStrictly } from './const';
import type { CascaderNodeKey, CascaderNodeList, CascaderOption, InnerCascaderOption } from './interface';
export declare const cascaderProps: {
    readonly data: {
        readonly type: PropType<CascaderOption[]>;
        readonly default: () => CascaderOption[];
    };
    readonly emptyText: {
        readonly type: StringConstructor;
    };
    readonly expandedKeys: {
        readonly type: PropType<CascaderNodeKey[]>;
        readonly default: () => CascaderNodeKey[];
    };
    readonly selectable: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly selectedKeys: {
        readonly type: PropType<CascaderNodeKey[]>;
        readonly default: () => CascaderNodeKey[];
    };
    readonly cascade: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly checkable: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly checkStrictly: {
        readonly type: PropType<CheckStrictly>;
        readonly default: "child";
    };
    readonly checkedKeys: {
        readonly type: PropType<CascaderNodeKey[]>;
        readonly default: () => CascaderNodeKey[];
    };
    readonly multiple: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly childrenField: {
        readonly type: StringConstructor;
        readonly default: "children";
    };
    readonly valueField: {
        readonly type: StringConstructor;
        readonly default: "value";
    };
    readonly labelField: {
        readonly type: StringConstructor;
        readonly default: "label";
    };
    readonly remote: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly loadData: {
        readonly type: PropType<(node: null | CascaderOption) => Promise<CascaderOption[]>>;
    };
    readonly cancelable: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly expandTrigger: {
        readonly type: StringConstructor;
        readonly default: string;
    };
    readonly emitPath: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly initLoadKeys: {
        readonly type: PropType<CascaderNodeKey[]>;
        readonly default: () => CascaderNodeKey[];
    };
    readonly showPath: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly isOpened: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
};
export type CascaderProps = ExtractPublicPropTypes<typeof cascaderProps>;
export declare const cascaderPropsDefaultValue: {
    [key: string]: any;
};
export interface CascaderInst {
    props: CascaderProps;
    selectNode: (value: CascaderNodeKey, event: Event) => void;
    expandNode: (value: CascaderNodeKey, event: Event) => void;
    checkNode: (value: CascaderNodeKey, event: Event) => void;
    hasSelected: (value: CascaderNodeKey) => boolean;
    hasChecked: (value: CascaderNodeKey) => boolean;
    hasLoaded: (node: InnerCascaderOption) => boolean;
    hasCheckLoaded: (value: CascaderNodeKey, nodeList: CascaderNodeList) => boolean;
    hasActive: (value: CascaderNodeKey, nodeList: CascaderNodeList) => boolean;
    transformData: Ref<CascaderNodeKey[]>;
    nodeList: {
        [key: string]: InnerCascaderOption;
    };
}
export declare const CASCADER_PROVIDE_KEY: InjectionKey<CascaderInst>;
