import { Model } from "mongoose";
import { AchievementDocument } from "./schemas/achievement.schema";
import { ChallengesDocument } from "./schemas/challenges.schema";
import { ChallengesUserDocument } from "./schemas/challengesUser.schema";
import { ChallengeMode } from "src/common/enums/challenges.enum";
export declare class AchievementsService {
    private achievementModel;
    private challengesModel;
    private membershipModel;
    constructor(achievementModel: Model<AchievementDocument>, challengesModel: Model<ChallengesDocument>, membershipModel: Model<ChallengesUserDocument>);
    private evaluate;
    private snapshot;
    record(params: {
        userId: any;
        challenge: any;
        membership: any;
        mode: ChallengeMode;
        result: any;
        completedAt?: Date;
    }): Promise<void>;
    reconcileUser(userId: any): Promise<void>;
    listForUser(userId: any, lang?: string, page?: number, limit?: number): Promise<{
        items: {
            _id: any;
            challenge_id: any;
            membership_id: any;
            type: any;
            title: any;
            short_desc: any;
            focus: any;
            level: any;
            attachment: any;
            goal: any;
            duration: any;
            result: any;
            started_at: any;
            completed_at: any;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    hasCompleted(userId: any, challengeId: any): Promise<boolean>;
    completedChallengeIds(userId: any): Promise<Set<string>>;
}
