import { HttpService } from '@nestjs/axios';
import { ConfigService } from '@nestjs/config';
import { PrismaService } from '../database/prisma.service';
import { CollectMatchesDto } from './dto/search-riot-user.dto';
import { RiotAccountService } from './riot-account.service';
import { RiotAccount } from '@prisma/client';
export type MatchQueueFilter = 'ALL' | 'RANKED_SOLO' | 'RANKED_FLEX' | 'ARAM' | 'GAME_TYPES';
export declare class RiotMatchService {
    private readonly http;
    private readonly config;
    private readonly prisma;
    private readonly accountService;
    constructor(http: HttpService, config: ConfigService, prisma: PrismaService, accountService: RiotAccountService);
    collectRecentMatches(dto: CollectMatchesDto): Promise<{
        puuid: string;
        requested: number;
        inserted: number;
        skipped: number;
    }>;
    collectRecentMatchesForAccount(riotAccount: Pick<RiotAccount, 'id' | 'puuid'>, region: string, matchCount?: number): Promise<{
        puuid: string;
        requested: number;
        inserted: number;
        skipped: number;
    }>;
    ensureMatchesForFilter(riotAccount: Pick<RiotAccount, 'id' | 'puuid'>, region: string, queueFilter: MatchQueueFilter, minimumCount: number): Promise<{
        recentUnchanged: boolean;
        remoteExhausted: boolean;
    }>;
    private fetchMatchIds;
    private fetchMatchIdsPage;
    private collectMatchIdsForAccount;
    private getStoredMatchIds;
    private countStoredMatches;
    private countStoredMatchesByFilter;
    private buildQueueFilterWhere;
    private fetchMatch;
    private get;
}
