/** * T-070 + T-625: 签到日历组件 * 展示月度日历(支持月份切换)、已签到日期高亮、连续签到天数、签到按钮、连续签到奖励预览 * 对接 CheckinApi.getCalendar(month) 数据源 */ import { BaseComponent } from '../base/BaseComponent'; /** 签到日历数据 */ export interface CheckinCalendarData { /** 当前展示月份 YYYY-MM */ month: string; /** 当月已签到的日期列表(日期字符串 YYYY-MM-DD) */ checkedDates: string[]; /** 连续签到天数 */ consecutiveDays: number; /** 今日是否已签到 */ todayChecked: boolean; /** 当月签到总天数 */ monthTotal: number; /** 当月累计积分 */ totalPoints: number; /** 连续签到奖励预览 */ streakRewards: StreakReward[]; } /** 连续签到奖励 */ export interface StreakReward { /** 连续天数 */ days: number; /** 奖励积分 */ points: number; /** 是否已达成 */ achieved: boolean; } /** 签到回调 */ export type CheckinFn = () => Promise; /** 月份数据加载回调 */ export type LoadCalendarFn = (month: string) => Promise; export declare class CheckinCalendar extends BaseComponent { private data; private checkinFn; private loadCalendarFn; private currentYear; private currentMonth; private checking; private loading; constructor(); /** 设置签到数据 */ setData(data: CheckinCalendarData): void; /** 设置签到回调 */ setCheckinHandler(fn: CheckinFn): void; /** 设置月份数据加载回调 */ setLoadCalendarFn(fn: LoadCalendarFn): void; /** 切换到上一月 */ private goToPrevMonth; /** 切换到下一月 */ private goToNextMonth; /** 加载指定月份数据 */ private loadMonthData; /** 执行签到 */ private handleCheckin; /** 更新签到按钮状态 */ private updateCheckinButton; /** 获取今日日期字符串 */ private getTodayString; /** 判断当前展示月是否是当月 */ private isCurrentMonth; /** 判断是否可以往后翻 */ private canGoNext; /** 生成日历网格数据 */ private generateCalendarDays; /** 获取月份展示名 */ private getMonthDisplay; protected styles(): string; protected render(): string; protected afterRender(): void; } /** 注册自定义元素 */ export declare function registerCheckinCalendar(): void; //# sourceMappingURL=CheckinCalendar.d.ts.map