import { ModalProps } from 'antd/lib/modal';
export declare type NodeType = 'USER' | 'ORG' | 'DEPT' | 'GROUP_DEPT' | 'GROUP' | 'TAG';
export interface ListItem {
    id: string;
    tagType: 'SYS_TAG' | 'COMMON_TAG' | 'PERSONAL_TAG';
    name: string;
    userCount?: number;
    type: 'dept' | 'user';
    isRoot: boolean;
    orgName?: string;
    deptId?: string;
    deptName?: string;
}
export interface ValueObj {
    selectSignature?: string;
    orgId?: string | number;
    userInfoList: IlistItem[];
    deptInfoList: IlistItem[];
    tagInfoList: IlistItem[];
    orgInfoList: IlistItem[];
    groupInfoList: IlistItem[];
}
export declare type Value = ValueObj;
export interface IdefaultValue {
    deptInfoList?: IlistItem[];
    orgInfoList?: IlistItem[];
    userInfoList?: IlistItem[];
    tagInfoList?: IlistItem[];
    groupInfoList?: IlistItem[];
}
export interface IlistItem {
    id: string;
    name: string;
    type?: string;
    orgId?: string;
    orgName?: string;
    contactType?: string;
    deptId?: string;
    deptName?: string;
}
export interface SelectUserCountRequestItem {
    selectNodeList: {
        contactType: string;
        type?: string;
        key?: string;
        id: string;
    }[];
    type: string;
}
export interface ItreeItem extends Omit<ListItem, 'type' | 'isRoot' | 'tagType'> {
    key: string;
    title: any;
    nodeType: string;
    orgId?: string;
    type?: NodeType;
    deptType?: 0 | 1;
    children?: ItreeItem[];
    checkable?: boolean;
    isLeaf?: boolean;
    pos?: string;
    label?: string;
    icon?: any;
    contactType?: string;
    count?: number;
}
export interface PropTypes {
    defaultValue?: IdefaultValue;
    selectSignature?: string;
    isSaveSelectSignature?: boolean;
    visible: boolean;
    showTabList: ('dept' | 'group' | 'innerContacts' | 'schoolContacts' | 'tags')[];
    onCancel?(): void;
    onOk(value: Value): void;
    selectType?: 'user' | 'dept';
    unCheckableNodeType?: NodeType[];
    onlyLeafCheckable?: boolean;
    searchPlaceholder?: string;
    multiple?: boolean;
    dialogProps?: ModalProps;
    basePath?: 'pc' | 'mobile';
    requestParams?: {
        campusType?: 'base_school_type' | 'custom_school_type';
        onlySelectGroup?: boolean;
        strictUser?: boolean;
        corpId?: string;
        deptTypeList?: any;
        selectTypeList?: any;
    };
    selectPaneProps?: any;
}
export declare type SelectUserFuncArgProps = Omit<PropTypes, 'visible' | 'onOk'> & {
    onOk(value: Value): void | Promise<void>;
};
export declare type SelectUserFunc = (props: SelectUserFuncArgProps) => {
    destroy: () => void;
};
export interface SelectUserStaticFunctions {
    show: SelectUserFunc;
}
export interface IsaveResultParams {
    deptInfoList: any;
    orgInfoList: any;
    userInfoList: any;
    groupInfoList: any;
    tagInfoList: any;
    id: string | null;
}
interface ISelectNodeListItem {
    contactType: string;
    type?: string;
    key?: string;
    id: string;
}
export interface SelectUserCountRequestItem {
    selectNodeList: ISelectNodeListItem[];
    type: string;
}
export {};
