import { AnalysisService } from './analysis.service';
import { CreateAnalysisDto } from './dto/create-analysis.dto';
import { LookupAnalysisDto } from '../riot/dto/search-riot-user.dto';
export declare class AnalysisController {
    private readonly analysisService;
    constructor(analysisService: AnalysisService);
    create(dto: CreateAnalysisDto): Promise<{
        requestId: bigint;
        status: string;
        latestSnapshotId: bigint;
    }>;
    lookup(dto: LookupAnalysisDto): Promise<{
        found: boolean;
        latestSnapshotId: null;
        snapshot: null;
        pendingRequestId: null;
        pendingStatus: null;
        lastUpdatedAt?: undefined;
    } | {
        found: boolean;
        latestSnapshotId: bigint | null;
        snapshot: {
            snapshotId: any;
            gameName: any;
            tagLine: any;
            profileIconId: any;
            summonerLevel: any;
            currentRanks: {
                solo: {
                    tier: string;
                    rank: string;
                    leaguePoints: number;
                    wins: number;
                    losses: number;
                } | null;
                flex: {
                    tier: string;
                    rank: string;
                    leaguePoints: number;
                    wins: number;
                    losses: number;
                } | null;
            };
            ggtiType: any;
            sampleMatchCount: any;
            primaryChampionName: any;
            traitScores: any;
            featureSummary: any;
            aiSummary: any;
            aiDetail: any;
            shareKey: any;
            analyzedAt: any;
            recentMatches: any;
        } | null;
        pendingRequestId: bigint | null;
        pendingStatus: string | null;
        lastUpdatedAt: Date | null;
    }>;
    refresh(dto: CreateAnalysisDto): Promise<{
        requestId: bigint;
        status: string;
        latestSnapshotId: bigint | null;
    }>;
    getRequest(requestId: string): Promise<{
        latestSnapshotId: bigint | null;
        lastUpdatedAt: Date | null;
        riotAccount: {
            gameName: string;
            tagLine: string;
            id: bigint;
            gameId: bigint;
            puuid: string;
            lastSyncedAt: Date | null;
            createdAt: Date;
            updatedAt: Date;
        };
        id: bigint;
        createdAt: Date;
        riotAccountId: bigint;
        status: string;
        requestedMatchCount: number;
        errorCode: string | null;
        errorMessage: string | null;
        startedAt: Date | null;
        finishedAt: Date | null;
    }>;
    getSnapshot(snapshotId: string): Promise<{
        totalMatchCount: number;
        snapshotId: any;
        gameName: any;
        tagLine: any;
        profileIconId: any;
        summonerLevel: any;
        currentRanks: {
            solo: {
                tier: string;
                rank: string;
                leaguePoints: number;
                wins: number;
                losses: number;
            } | null;
            flex: {
                tier: string;
                rank: string;
                leaguePoints: number;
                wins: number;
                losses: number;
            } | null;
        };
        ggtiType: any;
        sampleMatchCount: any;
        primaryChampionName: any;
        traitScores: any;
        featureSummary: any;
        aiSummary: any;
        aiDetail: any;
        shareKey: any;
        analyzedAt: any;
        recentMatches: any;
    }>;
    getSnapshotMatches(snapshotId: string, offset?: string, limit?: string, queueFilter?: string): Promise<{
        items: {
            participantMatchId: any;
            matchId: any;
            queueId: any;
            gameStartAt: any;
            gameDurationSec: any;
            championName: any;
            lane: any;
            role: any;
            win: any;
            kills: any;
            deaths: any;
            assists: any;
            killParticipation: any;
            visionScore: any;
            totalMinionsKilled: any;
            goldEarned: any;
            totalDamageToChampions: any;
            items: number[];
            summonerSpellIds: number[];
            kdaRatio: number;
            featureScores: {
                aggression: number;
                stability: number;
                roaming: number;
                vision: number;
                objective: number;
                growth: number;
                fightJoin: number;
            } | null;
            aiSummary: any;
            aiDetail: any;
            tags: any;
        }[];
        total: number;
        nextOffset: number;
        hasMore: boolean;
    }>;
    getMatchDetail(participantMatchId: string): Promise<{
        participantMatchId: bigint;
        matchId: string;
        queueId: number;
        gameStartAt: Date;
        gameDurationSec: number;
        teamId: number;
        win: boolean;
        aiSummary: string;
        aiDetail: string;
        tags: import("@prisma/client/runtime/library").JsonArray;
        player: {
            participantId: number;
            teamId: number;
            gameName: string;
            tagLine: string;
        };
        teams: {
            teamId: number;
            side: string;
            result: string;
            totalKills: number;
            totalGold: number;
            objectives: {
                baron: number;
                dragon: number;
                riftHerald: number;
                horde: number;
                tower: number;
                inhibitor: number;
            };
            participants: {
                participantId: number;
                teamId: number;
                championId: number;
                championName: string | null;
                summonerName: string;
                tagLine: string | null;
                puuid: string | null;
                level: number;
                win: boolean;
                kills: number;
                deaths: number;
                assists: number;
                kdaRatio: number;
                killParticipation: number;
                visionScore: number;
                wardsPlaced: number;
                wardsKilled: number;
                controlWardsBought: number;
                totalDamageToChampions: number;
                totalDamageTaken: number;
                cs: number;
                csPerMinute: number;
                spells: number[];
                items: number[];
                perks: number[];
                isPlayer: boolean;
                goldEarned: number;
            }[];
        }[];
        playerTeamSide: string;
    }>;
}
