import { PropType, ExtractPropTypes } from 'vue';
import type { TreeNode, TreeViewFilterMethod, TreeViewPropKey } from '../types';
export declare const useTreeViewProps: {
    nodes: {
        type: PropType<TreeNode[]>;
        default: never[];
    };
    stateful: {
        type: BooleanConstructor;
        default: boolean;
    };
    selectable: {
        type: BooleanConstructor;
        default: boolean;
    };
    selectionType: {
        type: StringConstructor;
        default: string;
        validator: (v: string) => boolean;
    };
    valueBy: {
        type: PropType<TreeViewPropKey>;
        default: string;
    };
    textBy: {
        type: PropType<TreeViewPropKey>;
        default: string;
    };
    trackBy: {
        type: PropType<TreeViewPropKey>;
        default: string;
    };
    iconBy: {
        type: PropType<TreeViewPropKey>;
        default: string;
    };
    disabledBy: {
        type: PropType<TreeViewPropKey>;
        default: string;
    };
    expandedBy: {
        type: PropType<TreeViewPropKey>;
        default: string;
    };
    checkedBy: {
        type: PropType<TreeViewPropKey>;
        default: string;
    };
    childrenBy: {
        type: PropType<TreeViewPropKey>;
        default: string;
    };
    expandAll: {
        type: BooleanConstructor;
        default: boolean;
    };
    expanded: {
        type: PropType<(string | number | TreeNode)[]>;
        default: never[];
    };
    expandNodeBy: {
        type: PropType<"leaf" | "node">;
        default: string;
    };
    filter: {
        type: StringConstructor;
        default: string;
    };
    filterMethod: {
        type: PropType<TreeViewFilterMethod | undefined>;
        default: undefined;
    };
    checked: {
        type: PropType<(string | number | TreeNode)[]>;
        default: never[];
    };
    color: {
        type: StringConstructor;
        default: string;
    };
};
export declare const useTreeViewEmits: string[];
export declare const useTreeHelpers: (props: ExtractPropTypes<typeof useTreeViewProps>) => {
    getText: (node: TreeNode) => any;
    getValue: (node: TreeNode) => any;
    getChecked: (node: TreeNode) => any;
    getTrackBy: (node: TreeNode) => any;
    getChildren: (node: TreeNode) => any;
    getDisabled: (node: TreeNode) => any;
    getExpanded: (node: TreeNode) => any;
    iterateNodes: (nodes: TreeNode[], cb: (node: TreeNode) => unknown) => void;
    getNodeByValue: (value: TreeNode) => TreeNode;
    getNodeProperty: (node: TreeNode, key: TreeViewPropKey) => any;
};
