/** * @fileoverview 认证状态管理 * @description 处理用户登录、Token 管理、用户信息、应用选择 */ import type { PermissionTreeNodeDto } from '../apis/sys/schemas'; import { TOKEN_KEY, REFRESH_TOKEN_KEY, CURRENT_APP_KEY } from '../constants/storage-keys'; export { TOKEN_KEY, REFRESH_TOKEN_KEY, CURRENT_APP_KEY }; /** 用户信息接口 */ export interface UserInfo { id: string; username: string; nickname?: string; phone?: string; email?: string; avatar?: string; gender: number; isDeveloper: boolean; userStatus: number; roles: string[]; } /** 应用信息 */ export interface AppInstance { appId: string; appName: string; appCode: string; appLogo?: string; isOwner: boolean; /** 应用类型 ID */ appTypeId?: string; /** 应用类型编码 */ appTypeCode?: string; /** 应用类型名称 */ appTypeName?: string; } /** 登录请求参数 */ export interface LoginParams { username: string; password: string; } /** 权限树节点(简化版) */ export interface PermissionMenuItem { id: string; permName: string; permCode: string; routePath?: string; iconName?: string; children?: PermissionMenuItem[]; } /** * 认证状态管理 Store */ export declare const useAuthStore: import("pinia").StoreDefinition<"auth", Pick<{ token: import("vue").Ref; refreshToken: import("vue").Ref; user: import("vue").Ref<{ id: string; username: string; nickname?: string | undefined; phone?: string | undefined; email?: string | undefined; avatar?: string | undefined; gender: number; isDeveloper: boolean; userStatus: number; roles: string[]; } | null, UserInfo | { id: string; username: string; nickname?: string | undefined; phone?: string | undefined; email?: string | undefined; avatar?: string | undefined; gender: number; isDeveloper: boolean; userStatus: number; roles: string[]; } | null>; apps: import("vue").Ref<{ appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; }[], AppInstance[] | { appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; }[]>; currentApp: import("vue").Ref<{ appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; } | null, AppInstance | { appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; } | null>; permissionMenu: import("vue").Ref<{ id: string; permName: string; permCode: string; routePath?: string | undefined; iconName?: string | undefined; children?: /*elided*/ any[] | undefined; }[], PermissionMenuItem[] | { id: string; permName: string; permCode: string; routePath?: string | undefined; iconName?: string | undefined; children?: /*elided*/ any[] | undefined; }[]>; tokenExpiresAt: import("vue").Ref; loading: import("vue").Ref; permissionValueMap: import("vue").Ref, Record>; routePermCodeMap: import("vue").Ref & Omit, keyof Map>, Map | (Map & Omit, keyof Map>)>; isAuthenticated: import("vue").ComputedRef; isLoggedIn: import("vue").ComputedRef; hasApps: import("vue").ComputedRef; needSelectApp: import("vue").ComputedRef; restoreToken: () => boolean; saveToken: (newToken: string, newRefreshToken: string, expiresIn: number) => void; clearToken: () => void; isTokenExpiringSoon: () => boolean; login: (params: LoginParams) => Promise; logout: () => Promise; refreshAccessToken: () => Promise; fetchUserInfo: () => Promise; fetchUserApps: () => Promise; selectApp: (app: AppInstance) => Promise; autoSelectApp: () => Promise; loadPermissions: (appId: string) => Promise; setPermissionMenu: (menu: PermissionMenuItem[]) => void; initializeAuth: () => Promise; buildRoutePermCodeMap: (nodes: PermissionTreeNodeDto[]) => void; getPermCodeByRoute: (currentPath: string) => string | undefined; }, "loading" | "user" | "currentApp" | "token" | "refreshToken" | "apps" | "permissionMenu" | "tokenExpiresAt" | "permissionValueMap" | "routePermCodeMap">, Pick<{ token: import("vue").Ref; refreshToken: import("vue").Ref; user: import("vue").Ref<{ id: string; username: string; nickname?: string | undefined; phone?: string | undefined; email?: string | undefined; avatar?: string | undefined; gender: number; isDeveloper: boolean; userStatus: number; roles: string[]; } | null, UserInfo | { id: string; username: string; nickname?: string | undefined; phone?: string | undefined; email?: string | undefined; avatar?: string | undefined; gender: number; isDeveloper: boolean; userStatus: number; roles: string[]; } | null>; apps: import("vue").Ref<{ appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; }[], AppInstance[] | { appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; }[]>; currentApp: import("vue").Ref<{ appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; } | null, AppInstance | { appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; } | null>; permissionMenu: import("vue").Ref<{ id: string; permName: string; permCode: string; routePath?: string | undefined; iconName?: string | undefined; children?: /*elided*/ any[] | undefined; }[], PermissionMenuItem[] | { id: string; permName: string; permCode: string; routePath?: string | undefined; iconName?: string | undefined; children?: /*elided*/ any[] | undefined; }[]>; tokenExpiresAt: import("vue").Ref; loading: import("vue").Ref; permissionValueMap: import("vue").Ref, Record>; routePermCodeMap: import("vue").Ref & Omit, keyof Map>, Map | (Map & Omit, keyof Map>)>; isAuthenticated: import("vue").ComputedRef; isLoggedIn: import("vue").ComputedRef; hasApps: import("vue").ComputedRef; needSelectApp: import("vue").ComputedRef; restoreToken: () => boolean; saveToken: (newToken: string, newRefreshToken: string, expiresIn: number) => void; clearToken: () => void; isTokenExpiringSoon: () => boolean; login: (params: LoginParams) => Promise; logout: () => Promise; refreshAccessToken: () => Promise; fetchUserInfo: () => Promise; fetchUserApps: () => Promise; selectApp: (app: AppInstance) => Promise; autoSelectApp: () => Promise; loadPermissions: (appId: string) => Promise; setPermissionMenu: (menu: PermissionMenuItem[]) => void; initializeAuth: () => Promise; buildRoutePermCodeMap: (nodes: PermissionTreeNodeDto[]) => void; getPermCodeByRoute: (currentPath: string) => string | undefined; }, "isAuthenticated" | "isLoggedIn" | "hasApps" | "needSelectApp">, Pick<{ token: import("vue").Ref; refreshToken: import("vue").Ref; user: import("vue").Ref<{ id: string; username: string; nickname?: string | undefined; phone?: string | undefined; email?: string | undefined; avatar?: string | undefined; gender: number; isDeveloper: boolean; userStatus: number; roles: string[]; } | null, UserInfo | { id: string; username: string; nickname?: string | undefined; phone?: string | undefined; email?: string | undefined; avatar?: string | undefined; gender: number; isDeveloper: boolean; userStatus: number; roles: string[]; } | null>; apps: import("vue").Ref<{ appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; }[], AppInstance[] | { appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; }[]>; currentApp: import("vue").Ref<{ appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; } | null, AppInstance | { appId: string; appName: string; appCode: string; appLogo?: string | undefined; isOwner: boolean; appTypeId?: string | undefined; appTypeCode?: string | undefined; appTypeName?: string | undefined; } | null>; permissionMenu: import("vue").Ref<{ id: string; permName: string; permCode: string; routePath?: string | undefined; iconName?: string | undefined; children?: /*elided*/ any[] | undefined; }[], PermissionMenuItem[] | { id: string; permName: string; permCode: string; routePath?: string | undefined; iconName?: string | undefined; children?: /*elided*/ any[] | undefined; }[]>; tokenExpiresAt: import("vue").Ref; loading: import("vue").Ref; permissionValueMap: import("vue").Ref, Record>; routePermCodeMap: import("vue").Ref & Omit, keyof Map>, Map | (Map & Omit, keyof Map>)>; isAuthenticated: import("vue").ComputedRef; isLoggedIn: import("vue").ComputedRef; hasApps: import("vue").ComputedRef; needSelectApp: import("vue").ComputedRef; restoreToken: () => boolean; saveToken: (newToken: string, newRefreshToken: string, expiresIn: number) => void; clearToken: () => void; isTokenExpiringSoon: () => boolean; login: (params: LoginParams) => Promise; logout: () => Promise; refreshAccessToken: () => Promise; fetchUserInfo: () => Promise; fetchUserApps: () => Promise; selectApp: (app: AppInstance) => Promise; autoSelectApp: () => Promise; loadPermissions: (appId: string) => Promise; setPermissionMenu: (menu: PermissionMenuItem[]) => void; initializeAuth: () => Promise; buildRoutePermCodeMap: (nodes: PermissionTreeNodeDto[]) => void; getPermCodeByRoute: (currentPath: string) => string | undefined; }, "restoreToken" | "saveToken" | "clearToken" | "isTokenExpiringSoon" | "login" | "logout" | "refreshAccessToken" | "fetchUserInfo" | "fetchUserApps" | "selectApp" | "autoSelectApp" | "loadPermissions" | "setPermissionMenu" | "initializeAuth" | "buildRoutePermCodeMap" | "getPermCodeByRoute">>; //# sourceMappingURL=auth-store.d.ts.map