import { ContractData, KfUserListData, CkAccount, ContactGroupByLabel, weChatGroup, } from "@/pages/pc/ckbox/data"; // 权限片段接口 export interface PrivilegeFrag { // 根据实际数据结构补充 [key: string]: any; } // 租户信息接口 export interface CkTenant { id: number; name: string; guid: string; thirdParty: string | null; tenantType: number; deployName: string; } // 触客宝用户信息接口 export interface CkUserInfo { account: CkAccount; privilegeFrags: PrivilegeFrag[]; tenant: CkTenant; } // 状态接口 export interface CkChatState { userInfo: CkUserInfo | null; isLoggedIn: boolean; searchKeyword: string; contractList: ContractData[]; chatSessions: any[]; kfUserList: KfUserListData[]; kfSelected: number; getKfSelectedUser: () => KfUserListData | undefined; countLables: ContactGroupByLabel[]; newContractList: ContactGroupByLabel[]; getContractList: () => ContractData[]; getSomeContractList: (kfSelected: number) => ContractData[]; getNewContractList: () => ContactGroupByLabel[]; setSearchKeyword: (keyword: string) => void; clearSearchKeyword: () => void; asyncKfSelected: (data: number) => void; asyncWeChatGroup: (data: weChatGroup[]) => void; asyncCountLables: (data: ContactGroupByLabel[]) => void; getkfUserList: () => KfUserListData[]; asyncKfUserList: (data: KfUserListData[]) => void; getKfUserInfo: (wechatAccountId: number) => KfUserListData | undefined; asyncContractList: (data: ContractData[]) => void; getChatSessions: () => any[]; asyncChatSessions: (data: any[]) => void; updateChatSession: (session: ContractData | weChatGroup) => void; deleteCtrlUser: (userId: number) => void; updateCtrlUser: (user: KfUserListData) => void; clearkfUserList: () => void; addChatSession: (session: any) => void; deleteChatSession: (sessionId: number) => void; pinChatSessionToTop: (sessionId: number) => void; setUserInfo: (userInfo: CkUserInfo) => void; clearUserInfo: () => void; updateAccount: (account: Partial) => void; updateTenant: (tenant: Partial) => void; getAccountId: () => number | null; getTenantId: () => number | null; getAccountName: () => string | null; getTenantName: () => string | null; }