interface Item {
    name: string;
    avatar: string;
    selected?: boolean;
    [propsName: string]: any;
}
declare type enumType = {
    Contacts: "Contacts";
    Groups: "Groups";
    Recent: "Recent";
    GroupMembers: "GroupMembers";
    Forward: "Forward";
};
declare type AcType = enumType[keyof enumType];
declare type TabProps = {
    type: AcType | "";
    title: string;
    active: boolean;
    items: Item[];
};
declare type SupportTab = {
    type: AcType;
    title: string;
};
declare type SelectedUserProps = {
    avatar: string;
    name: string;
    [K: string]: string;
};
declare type ResultHandler = (selectedTabs: TabProps[], chatIds?: string[]) => Promise<boolean>;
declare type FormatHandleMap = {
    [tabType: string]: (tabList: any[]) => any[];
};
declare type InitialProps = {
    initialTab: AcType;
    title: string;
    okText: string;
    supportTab: SupportTab[];
    resultHandler?: ResultHandler;
    cancelHandler?: () => {};
    initTabFormatMap?: FormatHandleMap;
    dataDidInit?: Function;
    forward?: boolean;
};
declare class PickerStore {
    TabEnum: enumType;
    visible: boolean;
    title: string;
    okText: string;
    initialTab: AcType | "";
    selectedMap: {
        [propName: string]: SelectedUserProps;
    };
    tabs: TabProps[];
    searchText: string;
    resultHandler: ResultHandler;
    cancelHandler: () => void;
    forward: boolean;
    get isSelected(): boolean;
    get renderListInfo(): {
        groupByKeys: {
            space: {};
            keys: string[];
        };
        type: "Contacts";
        list?: undefined;
    } | {
        list: Item[];
        type: "" | AcType;
        groupByKeys?: undefined;
    };
    get activeTab(): TabProps | {
        items: never[];
        type: "";
    };
    toggleTab(activeType: AcType): void;
    open({ initialTab, title, supportTab, okText, resultHandler, cancelHandler, initTabFormatMap, dataDidInit, forward, }: InitialProps): Promise<void>;
    close(): void;
    onSearch: (val: string) => Promise<void>;
    updateSelect({ tabType, baseInfo, selectedInfo, }: {
        tabType: AcType;
        baseInfo: any;
        selectedInfo: SelectedUserProps;
    }): void;
    removeSelect(uuKey: string, info: any): void;
    assertSelect(tabType: AcType, info: any): boolean;
    generateTab(tabsKey: SupportTab[], initialTab: AcType, initTabFormatMap: FormatHandleMap): Promise<TabProps[]>;
    onCancel(): void;
    onOk(): Promise<void>;
    getTabList(tab: TabProps[], type: AcType): Item[];
    getUUKey(type: AcType, info: any): string;
    queryByKeyWords<T extends Record<string, string>>(list: Array<T>, value: string, key: keyof T): Array<T>;
}
declare const self: PickerStore;
export declare const pickerStore: PickerStore;
export default self;
