import { Contacts } from '../constants/contacts';
import { handleTreeNode } from '../utils/handleTreeNode';
import { ContactsListEmits, ContactsListProps } from './contacts-list';
import { ContactsItem, ContactsItem as ContactsItemOption, ContactsValue } from '../constants';
import { SetupContext } from 'vue';
type ReusableTemplateProps = {
    item?: ContactsItemOption;
    checked?: boolean;
    indeterminate?: boolean;
    disabled?: boolean;
    props?: Record<string, any>;
    onClick?: () => void;
    [key: string]: any;
};
type ReusableTreeTemplateProps = {
    dataSource?: ContactsItemOption[];
    height?: number;
    props?: Record<string, any>;
    onClick?: () => void;
};
export declare const useContactsList: (props: ContactsListProps, emit: SetupContext<ContactsListEmits>["emit"]) => {
    readonly ctx: {
        multiple: import('vue').Ref<boolean, boolean>;
        activeTab: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<Contacts | Contacts[]>, unknown, unknown>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<Contacts | Contacts[]>, unknown, unknown>>;
        optionKey: import('vue').ComputedRef<Record<"value" | "label" | "disabled" | "children", string>>;
        _loading: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<BooleanConstructor, unknown, unknown>, import('@yanzhen-libs/utils-vue').EpPropMergeType<BooleanConstructor, unknown, unknown>>;
        _disabledIds: import('vue').ComputedRef<(string | number)[]>;
        _selectedIds: import('vue').ComputedRef<ContactsValue[]>;
        _listProps: import('vue').ComputedRef<Pick<{
            [x: string]: unknown;
        }, string>>;
        _childActiveTab: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<import('../constants').User | import('../constants').User[]>, unknown, unknown>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<import('../constants').User | import('../constants').User[]>, unknown, unknown>>;
        selectedIconClass: import('vue').ComputedRef<unknown>;
        listConfig: import('vue').ComputedRef<{
            [x: string]: unknown;
        }>;
        $slots: Readonly<{
            [name: string]: import('vue').Slot<any>;
        }>;
        tag: import('vue').Ref<string, string>;
        mode: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<readonly ["default", "virtual", "tree"]>, "default" | "virtual" | "tree", unknown>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<readonly ["default", "virtual", "tree"]>, "default" | "virtual" | "tree", unknown>>;
        disabled: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<BooleanConstructor, unknown, unknown>, import('@yanzhen-libs/utils-vue').EpPropMergeType<BooleanConstructor, unknown, unknown>>;
        loading: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<BooleanConstructor, unknown, unknown>, import('@yanzhen-libs/utils-vue').EpPropMergeType<BooleanConstructor, unknown, unknown>>;
        dataSource: import('vue').Ref<ContactsItem[], ContactsItem[]>;
        distance: import('vue').Ref<number, number>;
        childActiveTab: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<import('../constants').User | import('../constants').User[]>, unknown, unknown>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<import('../constants').User | import('../constants').User[]>, unknown, unknown>>;
        childTabs: import('vue').Ref<{
            value: import('../constants').User;
            label: string;
        }[], {
            value: import('../constants').User;
            label: string;
        }[]>;
        isTreeMode: import('vue').Ref<boolean, boolean>;
        valueKey?: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>>;
        labelKey?: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>>;
        disabledKey?: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>>;
        childrenKey?: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>>;
        options?: import('vue').Ref<import('@yanzhen-libs/utils-vue').ExtractOptionType<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>[], import('@yanzhen-libs/utils-vue').ExtractOptionType<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>[]>;
        style?: import('vue').Ref<any, any>;
        class?: import('vue').Ref<any, any>;
        onTreeExpand?: import('vue').Ref<(expandedKeys: import('ant-design-vue/es/vc-tree/interface').Key[], info: {
            node: import('ant-design-vue/es/tree').EventDataNode;
            expanded: boolean;
            nativeEvent: MouseEvent;
        }) => void, (expandedKeys: import('ant-design-vue/es/vc-tree/interface').Key[], info: {
            node: import('ant-design-vue/es/tree').EventDataNode;
            expanded: boolean;
            nativeEvent: MouseEvent;
        }) => void>;
        height?: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<(StringConstructor | NumberConstructor)[], unknown, unknown>, import('@yanzhen-libs/utils-vue').EpPropMergeType<(StringConstructor | NumberConstructor)[], unknown, unknown>>;
        typeKey?: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>>;
        avatarKey?: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<string>, import('@yanzhen-libs/utils-vue').EpOptionKey<"value" | "label" | "disabled" | "children" | import('../constants').ContactsOption>, never>>;
        onItemClick?: import('vue').Ref<(item?: Partial<ContactsItem>) => void, (item?: Partial<ContactsItem>) => void>;
        onSuffixClick?: import('vue').Ref<(item?: Partial<ContactsItem>) => void, (item?: Partial<ContactsItem>) => void>;
        'onUpdate:loading'?: import('vue').Ref<(loading: boolean) => void, (loading: boolean) => void>;
        onLoadMore?: import('vue').Ref<(state?: {
            x: number;
            y: number;
            isScrolling: boolean;
            arrivedState: {
                left: boolean;
                right: boolean;
                top: boolean;
                bottom: boolean;
            };
            directions: {
                left: boolean;
                right: boolean;
                top: boolean;
                bottom: boolean;
            };
            measure: () => void;
        }) => void, (state?: {
            x: number;
            y: number;
            isScrolling: boolean;
            arrivedState: {
                left: boolean;
                right: boolean;
                top: boolean;
                bottom: boolean;
            };
            directions: {
                left: boolean;
                right: boolean;
                top: boolean;
                bottom: boolean;
            };
            measure: () => void;
        }) => void>;
        defaultNode?: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }> | (() => import('vue').VNode)>, unknown, unknown>, import('@yanzhen-libs/utils-vue').EpPropMergeType<import('vue').PropType<import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }> | (() => import('vue').VNode)>, unknown, unknown>>;
        disableIds?: import('vue').Ref<ContactsValue[], ContactsValue[]>;
        itemClass?: import('vue').Ref<string, string>;
        headerClass?: import('vue').Ref<string, string>;
        treeClass?: import('vue').Ref<string, string>;
        onTreeSelect?: import('vue').Ref<(selectedKeys: import('ant-design-vue/es/vc-tree/interface').Key[], info: {
            event: "select";
            selected: boolean;
            node: import('ant-design-vue/es/tree').EventDataNode;
            selectedNodes: import('ant-design-vue/es/tree').DataNode[];
            nativeEvent: MouseEvent;
        }) => void, (selectedKeys: import('ant-design-vue/es/vc-tree/interface').Key[], info: {
            event: "select";
            selected: boolean;
            node: import('ant-design-vue/es/tree').EventDataNode;
            selectedNodes: import('ant-design-vue/es/tree').DataNode[];
            nativeEvent: MouseEvent;
        }) => void>;
        'onUpdate:childActiveTab'?: import('vue').Ref<(val: any) => void, (val: any) => void>;
    };
    readonly templates: {
        DefineHeaderTemplate: import('@vueuse/core').DefineTemplateComponent<object, Record<string, import('vue').Slot>>;
        ReusableHeaderTemplate: import('@vueuse/core').ReuseTemplateComponent<object, Record<string, import('vue').Slot>>;
        DefineContactsItemTemplate: import('@vueuse/core').DefineTemplateComponent<ReusableTemplateProps, Record<string, import('vue').Slot>>;
        ReusableContactsItemTemplate: import('@vueuse/core').ReuseTemplateComponent<ReusableTemplateProps, Record<string, import('vue').Slot>>;
        DefineContactsCardItemTemplate: import('@vueuse/core').DefineTemplateComponent<ReusableTemplateProps, Record<string, import('vue').Slot>>;
        ReusableContactsCardItemTemplate: import('@vueuse/core').ReuseTemplateComponent<ReusableTemplateProps, Record<string, import('vue').Slot>>;
        DefineSelectedIconTemplate: import('@vueuse/core').DefineTemplateComponent<ReusableTemplateProps, Record<string, import('vue').Slot>>;
        ReusableSelectedIconTemplate: import('@vueuse/core').ReuseTemplateComponent<ReusableTemplateProps, Record<string, import('vue').Slot>>;
        DefineTreeTemplate: import('@vueuse/core').DefineTemplateComponent<ReusableTreeTemplateProps, Record<string, import('vue').Slot>>;
        ReusableTreeTemplate: import('@vueuse/core').ReuseTemplateComponent<ReusableTreeTemplateProps, Record<string, import('vue').Slot>>;
        DefineTreeItemTemplate: import('@vueuse/core').DefineTemplateComponent<import('ant-design-vue/es/tree').DataNode, Record<string, import('vue').Slot>>;
        ReusableTreeItemTemplate: import('@vueuse/core').ReuseTemplateComponent<import('ant-design-vue/es/tree').DataNode, Record<string, import('vue').Slot>>;
    };
    readonly handleTreeNode: typeof handleTreeNode;
    readonly handleItemClick: (item: ContactsItem) => void;
    readonly handleTreeSelect: (selectedKeys: import('ant-design-vue/es/vc-tree/interface').Key[], info: {
        event: "select";
        selected: boolean;
        node: import('ant-design-vue/es/tree').EventDataNode;
        selectedNodes: import('ant-design-vue/es/tree').DataNode[];
        nativeEvent: MouseEvent;
    }) => void;
    readonly handleTreeExpand: (expandedKeys: import('ant-design-vue/es/vc-tree/interface').Key[], info: {
        node: import('ant-design-vue/es/tree').EventDataNode;
        expanded: boolean;
        nativeEvent: MouseEvent;
    }) => Promise<void>;
    readonly handleLoadMore: (...args: never[]) => void;
    readonly handleUpdateChildActiveTab: (value: never) => void;
};
export {};
