import type { ComputedRef, PropType, ExtractPropTypes } from 'vue';
import type { RecordString } from '../../edit-page-layout';
export interface TreeNode {
    id: string;
    key: string;
    hasChildren: boolean;
    title: string;
    value: string;
    level: number;
    children?: null | TreeNode[];
    [K: string]: unknown;
}
export interface FieldNames {
    children: string;
    label: string;
    value: string;
}
export interface TreeSelectPayload {
    value: string;
    label: string[];
    extra: any;
}
export declare const treeSelectProps: {
    readonly value: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly multiple: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly dictCode: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly params: {
        readonly type: PropType<RecordString>;
        readonly default: () => {};
    };
    readonly fieldNames: {
        readonly type: PropType<FieldNames>;
        readonly default: () => {
            children: string;
            label: string;
            value: string;
        };
    };
    readonly options: {
        readonly type: PropType<TreeNode[]>;
        readonly default: () => never[];
    };
    readonly 'onUpdate:value': {
        type: PropType<((value: string) => void) | ((value: string) => void)[]>;
        default: unknown;
    };
    readonly onChange: {
        type: PropType<((payload: TreeSelectPayload) => void) | ((payload: TreeSelectPayload) => void)[]>;
        default: unknown;
    };
};
export type TreeSelectProps = ExtractPropTypes<typeof treeSelectProps>;
export interface UseTreeSelectReturnType {
    classes: ComputedRef<{
        [key: string]: string | boolean;
    }>;
}
