import { Contacts, ContactsDataTypes, ContactsItem, ContactsValue } from '../constants';
import { MaybeVRef } from '@yanzhen-libs/utils-vue';
import { ComponentPublicInstance, ComputedRef, EmitsOptions, SetupContext } from 'vue';
type ContactsDataCache = Record<string | number, ContactsItem>;
export declare function useContactsMap<E = ComponentPublicInstance>(_el?: MaybeVRef<E | null>): import('vue').Ref<ContactsDataCache, ContactsDataCache>;
export declare function handleContactsData(target: ContactsItem[], source: ContactsItem[], iteratee?: Contacts | ((item: ContactsItem) => ContactsItem)): ContactsItem[];
export declare function useContactsSelectedGroup(selectedValue?: MaybeVRef<(ContactsValue | ContactsItem)[]>): {
    groups: (Contacts.USER | Contacts.OUTORG | Contacts.ROLE | Contacts.ORGANIZATION | Contacts.GROUP)[];
    selectedValue: ComputedRef<ContactsItem[]>;
    getSelectedGroupItem: (key?: ContactsDataTypes, values?: (ContactsValue | ContactsItem)[]) => {
        children: ContactsItem[];
        value: string;
        label: string;
    };
    selectedGroup: ComputedRef<{
        children: ContactsItem[];
        value: string;
        label: string;
    }[]>;
    selectedGroupMap: Record<Contacts.USER | Contacts.OUTORG | Contacts.ROLE | Contacts.ORGANIZATION | Contacts.GROUP, ComputedRef<{
        children: ContactsItem[];
        value: string;
        label: string;
    }>>;
};
export declare function useContactsSelectedData<E extends EmitsOptions = EmitsOptions, D extends ComponentPublicInstance = ComponentPublicInstance>(el?: MaybeVRef<D | null>, emit?: SetupContext<E>['emit']): {
    readonly selectedValue: import('vue').WritableComputedRef<ContactsItem[], ContactsItem[]>;
    readonly getSelectedValues: (selectedIds?: ContactsValue[]) => ContactsItem[];
    readonly setSelectedValues: (items?: ContactsItem[]) => void;
};
export {};
