import type { FeatureVoteCandidate } from "./event.config/feature.vote2"; import type { UserEngagementData, EngageReward } from "./event.engage"; import type { ClaimRewardStatus } from "./event.enums"; export * from "./event.config"; export * from "./event.engage"; export interface VerifyMobileResult { /** 手机号是否允许登录此游戏(游戏 ID 由 Request Header 的 Origin 或 Referer 决定) */ allowed: boolean; /** 手机号是否已注册世游通行证 */ registered: boolean; } export declare const VerifyMobileResultValidator: import("@seayoo-web/validator").ObjectValidator; export interface UserFeatureStatus { /** 玩法 ID */ feature_id: number; /** * 是否 “仍可发起一次 Engage 行为”(基于次数/周期等限制)false 代表当前已不可再参与。 * * 💡注意这里的语义是已经达到了参与次数的上限,不能再调用 engage,而不是没有资格参与(资格由 eligible 控制)。 */ can_engage: boolean; /** * 用户是否具备参与资格(基于身份条件,如分群/角色 / 黑名单 / 活动准入规则) * * eligible=false 或字段不存在时,不应允许任何 Engage / Action 执行 */ eligible?: boolean; /** * 动作定义 + 行为控制,用于 UI 按钮级别权限控制,不同玩法之间 Action 定义不相同 */ actions?: { /** * Action 是玩法内的用户行为集合,由后端根据玩法类型与用户状态动态计算,不同玩法之间 Action 定义不相同 * * 在组队玩法(Team)中,支持以下操作类型: * * - `assemble`:发起组队 * - `join`:加入队伍 */ action_type: string; allowed: boolean; }[]; /** 是否有已获得但尚未领取的玩法参与奖励 */ has_unclaimed_rewards: boolean; /** * 所有限制条件(总次数、周期次数等)下的最终可用参与次数。 等于 Min(TotalRemainingEngagements, CycleRemainingEngagements) */ final_available_count: number; /** * 玩法生效时间内用户剩余的参与次数。 -1 表示玩法生效时间内参与次数无限制。 */ total_remaining_engagements: number; /** * 玩法当前参与周期(如每日或每周)内用户剩余的参与次数。-1 表示玩法当前参与周期内参与次数无限制。 */ cycle_remaining_engagements: number; } export declare const UserFeatureStatusValidator: import("@seayoo-web/validator").ObjectValidator; export interface EngageResponse { /** 当前参与记录 ID */ engagement_id: number; /** 用户玩法参与记录 */ engagement?: { engagement_id: number; sequence: number; feature_id: number; /** 附带的数据,由 feature_id 的类型决定 */ data?: UserEngagementData; }; /** 用户参与玩法得到的奖励 */ rewards?: EngageReward[]; /** 参与玩法后是否需要微信扫码 */ scan?: boolean; } export declare const EngageResponseValidator: import("@seayoo-web/validator").ObjectValidator; export interface ClaimedItem { /** 用户奖励记录 id */ reward_id: number; /** 领取后的奖励状态 */ reward_status: ClaimRewardStatus; } export declare const ClaimedItemValidator: import("@seayoo-web/validator").ObjectValidator; export type VoteCandidateSummary = Pick; export declare const VoteCandidateSummaryValidator: import("@seayoo-web/validator").ObjectValidator;