declare namespace AuthAPI {
	type AdminShowQry = {
		/** 管理员ID */
		adminId?: string;
		/** 用户ID */
		userId?: string;
		/** 管理员类型 */
		type?: string;
	};

	type AdminVO = {
		/** 管理员Id */
		adminId: string;
		/** 管理员名称 */
		name: string;
		/** 用户Id */
		userId: string;
		/** 管理员类型 */
		type?: string;
	};

	type CaptchaVO = {
		captchaId?: string;
		projectCode?: string;
		captchaType?: string;
		captchaOriginalPath?: string;
		captchaFontType?: string;
		captchaFontSize?: number;
		secretKey?: string;
		originalImageBase64?: string;
		point?: PointVO;
		jigsawImageBase64?: string;
		wordList?: string[];
		pointList?: { x?: number; y?: number }[];
		pointJson?: string;
		token?: string;
		result?: boolean;
		captchaVerification?: string;
		clientUid?: string;
		ts?: number;
		browserInfo?: string;
	};

	type ChannelVO = {
		/** 渠道ID */
		channelId: string;
		/** 域名 */
		domain?: string;
		/** Logo */
		logo?: string;
		/** 标题 */
		title?: string;
		/** 副标题 */
		subTitle?: string;
		/** 背景图片 */
		backgroundImageUrl?: string;
		/** 技术支持 */
		technicalSupport?: string;
		/** 创建时间 */
		createdAt?: string;
		/** 微信公众号Id */
		wxMpId?: string;
		/** 第三方应用Id */
		wxOpenId?: string;
	};

	type getRedirectUrlParams = {
		redirect: string;
	};

	type getSsoAuthUrlParams = {
		clientLoginUrl: string;
	};

	type Meta = {
		/** TOKEN */
		accessToken?: string;
		/** TOKEN类型 */
		tokenType?: string;
		/** 过期时间 */
		expiresIn?: number;
	};

	type MultiResponseTreeLong = {
		success?: boolean;
		errCode?: string;
		errMessage?: string;
		data?: TreeLong[];
		empty?: boolean;
		notEmpty?: boolean;
	};

	type OpenSafeCmd = {
		/** 登录密码 */
		password: string;
	};

	type PasswordLoginQry = {
		/** 登录账号 */
		username: string;
		/** 登录密码 */
		password: string;
		/** 验证码 token */
		token?: string;
	};

	type PermissionVO = {
		/** 权限Id */
		permissionId: string;
		/** 权限标识 */
		slug: string;
		/** 权限名称 */
		name: string;
	};

	type PointVO = {
		secretKey?: string;
		x?: number;
		y?: number;
	};

	type Response = {
		success?: boolean;
		errCode?: string;
		errMessage?: string;
	};

	type ResponseModel = {
		repCode?: string;
		repMsg?: string;
		repData?: any;
		success?: boolean;
		repCodeEnum?:
			| 'SUCCESS'
			| 'ERROR'
			| 'EXCEPTION'
			| 'BLANK_ERROR'
			| 'NULL_ERROR'
			| 'NOT_NULL_ERROR'
			| 'NOT_EXIST_ERROR'
			| 'EXIST_ERROR'
			| 'PARAM_TYPE_ERROR'
			| 'PARAM_FORMAT_ERROR'
			| 'API_CAPTCHA_INVALID'
			| 'API_CAPTCHA_COORDINATE_ERROR'
			| 'API_CAPTCHA_ERROR'
			| 'API_CAPTCHA_BASEMAP_NULL'
			| 'API_REQ_LIMIT_GET_ERROR'
			| 'API_REQ_INVALID'
			| 'API_REQ_LOCK_GET_ERROR'
			| 'API_REQ_LIMIT_CHECK_ERROR'
			| 'API_REQ_LIMIT_VERIFY_ERROR';
	};

	type RoleMenuTreeQry = {
		/** 角色权限 */
		roleId?: string[];
		/** 平台ID */
		platformId: string;
	};

	type selectChannelByDomainParams = {
		domain: string;
	};

	type SingleResponseAdminVO = {
		success?: boolean;
		errCode?: string;
		errMessage?: string;
		data?: AdminVO;
	};

	type SingleResponseChannelVO = {
		success?: boolean;
		errCode?: string;
		errMessage?: string;
		data?: ChannelVO;
	};

	type SingleResponseString = {
		success?: boolean;
		errCode?: string;
		errMessage?: string;
		data?: string;
	};

	type SingleResponseUserAuthVO = {
		success?: boolean;
		errCode?: string;
		errMessage?: string;
		data?: UserAuthVO;
	};

	type TreeLong = {
		name?: { empty?: boolean };
		id?: number;
		parentId?: number;
		config?: TreeNodeConfig;
		weight?: any;
		empty?: boolean;
	};

	type TreeNodeConfig = {
		idKey?: string;
		parentIdKey?: string;
		weightKey?: string;
		nameKey?: string;
		childrenKey?: string;
		deep?: number;
	};

	type UpdatePasswordCmd = {
		/** 旧密码 */
		oldPassword: string;
		/** 新密码 */
		password: string;
		/** 确认新密码 */
		confirmPassword: string;
	};

	type userAdminParams = {
		adminShowQry: AdminShowQry;
	};

	type UserAuthVO = {
		/** 用户编号 */
		userId: string;
		/** 用户信息 */
		userVO: UserVO;
		/** 用户角色信息 */
		userRoleVOList: UserRoleVO[];
		/** 权限信息 */
		permissionVOList: PermissionVO[];
		/** META扩展 */
		meta: Meta;
	};

	type userMenuParams = {
		roleMenuTreeQry: RoleMenuTreeQry;
	};

	type UserRoleVO = {
		/** 角色名称 */
		name: string;
		/** 角色标识 */
		slug: string;
		/** 角色ID */
		roleId: string;
	};

	type UserVO = {
		/** 用户编号 */
		userId: string;
		/** 昵称 */
		nickname: string;
		/** 头像 */
		avatar: string;
		/** 姓名 */
		name: string;
		/** 性别 */
		gender: number;
		/** 生日 */
		birthday: string;
		/** 手机号 */
		phone: string;
		/** 余额 */
		balance: string;
		/** 积分 */
		point: number;
		/** 备注 */
		remark?: string;
		/** 状态 */
		state: 'ENABLE' | 'DISABLE';
		/** 是否是管理员 */
		isAdmin: boolean;
		/** 创建时间 */
		createdAt: string;
		/** 绑定手机号码时间 */
		bindPhoneAt: string;
		/** 最后一次登录时间 */
		lastLoginAt: string;
		/** 是否绑定微信 */
		isBindWechat: boolean;
		/** 来源渠道 */
		sourceChannel:
			| 'WECHAT'
			| 'MANAGE_BACKEND'
			| 'BOSS_END'
			| 'DOUYIN'
			| 'INTRODUCE';
		/** 来源方式 */
		sourceWay:
			| 'MANUAL_ENTRY'
			| 'EXTERNAL_IMPORT'
			| 'NINE_GRID_LOTTERY'
			| 'ENTER_COUPON_PAGE'
			| 'ENTER_HOME_PAGE';
		/** 自定义字段 */
		customField: { empty?: boolean };
		/** 上次跟进时间 */
		lastFollowUpAt: string;
		/** 上次跟进天数 */
		userFollowUpDay: number;
		/** 是否签单 */
		isSign: boolean;
		/** 门店id */
		storeIdList?: string[];
		/** 课程名称 */
		spuName?: string;
		/** 课程已参与次数 */
		useNum?: number;
	};
}
