import { Repository } from 'typeorm';
import { treasure_hunt } from 'src/typeorm/treasure_hunt';
import { hunt_user_progress } from 'src/typeorm/hunt_user_progress';
import { hunt_step } from 'src/typeorm/hunt_step';
import { hunt_step_result } from 'src/typeorm/hunt_step_result';
import { city } from 'src/typeorm/city';
import { user_badge } from 'src/typeorm/user_badge';
import { User } from 'src/typeorm/user';
export declare class TreasureHuntKpiService {
    private readonly treasureHuntRepository;
    private readonly userProgressRepository;
    private readonly huntStepRepository;
    private readonly huntStepResultRepository;
    private readonly cityRepository;
    private readonly userBadgeRepository;
    private readonly userRepository;
    constructor(treasureHuntRepository: Repository<treasure_hunt>, userProgressRepository: Repository<hunt_user_progress>, huntStepRepository: Repository<hunt_step>, huntStepResultRepository: Repository<hunt_step_result>, cityRepository: Repository<city>, userBadgeRepository: Repository<user_badge>, userRepository: Repository<User>);
    getTreasureHuntKpis(): Promise<{
        hunts: {
            total: number;
            perCity: {
                cityId: number;
                cityLabel: any;
                total: number;
            }[];
            mostPopular: {
                huntId: number;
                participants: number;
                label: any;
            };
        };
        participants: {
            totalPlayers: number;
            active: {
                daily: number;
                weekly: number;
                monthly: number;
            };
            details: any;
        };
        completion: {
            finishedUsers: number;
            avgCompletionRate: number;
            avgCompletionTimeHours: number;
            dropOffPoints: {
                stepId: number;
                stepNumber: number;
                huntId: number;
                stepLabel: any;
                userCount: number;
            }[];
        };
        steps: {
            performance: {
                stepId: number;
                stepNumber: number;
                huntId: number;
                stepLabel: any;
                huntLabel: any;
                attempts: number;
                successCount: number;
                successRate: number;
            }[];
            easiestStep: {
                stepId: number;
                stepNumber: number;
                huntId: number;
                stepLabel: any;
                huntLabel: any;
                attempts: number;
                successCount: number;
                successRate: number;
            };
            hardestStep: {
                stepId: number;
                stepNumber: number;
                huntId: number;
                stepLabel: any;
                huntLabel: any;
                attempts: number;
                successCount: number;
                successRate: number;
            };
        };
        rewards: {
            rewardsClaimed: number;
            badgesEarned: number;
        };
    }>;
    updateParticipantAwardedStatus(progressId: number, isAwarded: boolean): Promise<{
        success: boolean;
    }>;
}
