import { PrismaService } from '../prisma/prisma.service';
export declare class PredictionsService {
    private prisma;
    constructor(prisma: PrismaService);
    createOrUpdatePrediction(user: {
        id: string;
        role: string;
        username: string;
    }, dto: any): Promise<{
        match: {
            homeTeam: {
                id: string;
                name: string;
                code: string;
                flagUrl: string | null;
                flagEmoji: string | null;
            };
            awayTeam: {
                id: string;
                name: string;
                code: string;
                flagUrl: string | null;
                flagEmoji: string | null;
            };
        } & {
            id: string;
            status: import(".prisma/client").$Enums.MatchStatus;
            stageId: string;
            groupId: string | null;
            matchNumber: number;
            homeTeamId: string | null;
            awayTeamId: string | null;
            homeFromMatchId: string | null;
            homeFromSide: import(".prisma/client").$Enums.MatchSide | null;
            awayFromMatchId: string | null;
            awayFromSide: import(".prisma/client").$Enums.MatchSide | null;
            scheduledAt: Date | null;
            homeScore: number | null;
            awayScore: number | null;
            apiFootballId: string | null;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        userId: string;
        homeScore: number;
        awayScore: number;
        matchId: string;
        winnerId: string | null;
        points: number | null;
        lockedAt: Date | null;
    }>;
    resetByUser(userId: string, username: string): Promise<import(".prisma/client").Prisma.BatchPayload>;
    private logReset;
    private logAudit;
    getPredictionsByUser(userId: string, tournamentIdentifier?: string): Promise<({
        match: {
            homeTeam: {
                id: string;
                name: string;
                code: string;
                flagUrl: string | null;
                flagEmoji: string | null;
            };
            awayTeam: {
                id: string;
                name: string;
                code: string;
                flagUrl: string | null;
                flagEmoji: string | null;
            };
        } & {
            id: string;
            status: import(".prisma/client").$Enums.MatchStatus;
            stageId: string;
            groupId: string | null;
            matchNumber: number;
            homeTeamId: string | null;
            awayTeamId: string | null;
            homeFromMatchId: string | null;
            homeFromSide: import(".prisma/client").$Enums.MatchSide | null;
            awayFromMatchId: string | null;
            awayFromSide: import(".prisma/client").$Enums.MatchSide | null;
            scheduledAt: Date | null;
            homeScore: number | null;
            awayScore: number | null;
            apiFootballId: string | null;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        userId: string;
        homeScore: number;
        awayScore: number;
        matchId: string;
        winnerId: string | null;
        points: number | null;
        lockedAt: Date | null;
    })[]>;
    getPredictionsByMatch(matchId: string): Promise<({
        user: {
            username: string;
            id: string;
            displayName: string;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        userId: string;
        homeScore: number;
        awayScore: number;
        matchId: string;
        winnerId: string | null;
        points: number | null;
        lockedAt: Date | null;
    })[]>;
}
