import { NodeType, ItreeItem, PropTypes, SelectUserCountRequestItem, IdefaultValue } from '../interface';
export declare function getUid(): string;
declare type StaticProps = Pick<PropTypes, 'selectType' | 'basePath' | 'requestParams' | 'multiple' | 'onlyLeafCheckable' | 'unCheckableNodeType' | 'selectSignature' | 'defaultValue' | 'onOk' | 'isSaveSelectSignature'>;
declare type ItreeState = StaticProps & {
    treeData: ItreeItem[];
    searchResult: any[];
    checkedKeys: string[];
    orgInfoList: ItreeItem[];
    deptInfoList: ItreeItem[];
    userInfoList: ItreeItem[];
    tagInfoList: ItreeItem[];
    groupInfoList: ItreeItem[];
    userCount: IuserCount;
};
interface IuserCount {
    orgCount: number;
    deptCount: number;
    tagCount: number;
    groupCount: number;
}
export interface ItreeContext {
    treeState: ItreeState;
    setSelectedData: (selectData: any) => void;
    updateCheckedNode: (node: ItreeItem, key: string) => boolean;
    clear: () => void;
    delKeys: (keys: string[], type?: NodeType) => void;
    setUserCount: (userCount: IuserCount) => void;
    resetUserCount: (item: ItreeItem, checked: boolean, isRequest?: boolean) => void;
    getTreeRoot: (type: string) => void;
    getSearchResult: (params: any) => void;
    loading: boolean;
    loadData: (item: ItreeItem, type: string) => Promise<void>;
    getUserCount: (selectCountRequestList: SelectUserCountRequestItem[]) => void;
    handleOk: (result: IdefaultValue & {
        selectSignature?: string;
    }) => void;
}
declare const useTree: (staticProps: StaticProps) => ItreeContext;
export default useTree;
