import { HttpClient, HttpParams } from '@angular/common/http'; import { Tournament } from '../models/tournament'; import { TournamentNews } from '../models/tournament-news'; import { Game, GameStatuses } from '../models/game'; import { GameTimelineStages } from '../models/game-timeline-stages'; import { TournamentTeam } from '../models/tournament-team'; import { TournamentStage } from '../models/tournament-stage'; import { Playoff } from '../models/playoff'; import { PaginatedResponse } from './paginated-response.interface'; import { BasketballStatistic } from '../models/basketball-statistic'; import { VolleyballStatistic } from '../models/volleyball-statistic'; import { TournamentTeamUser } from '../models/tournament-team-user'; import { TournamentStageTeam } from '../models/tournament-stage-team'; import { TournamentEvent, TournamentEventTypes } from '../models/tournament-event'; import { ConfigService } from '../services/config.service'; import { HockeyStatistic } from '../models/hockey-statistic'; import { FootballStatistic } from '../models/football-statistic'; import { LeagueUserPermissions } from '../models/league-user'; import { HandballStatistic } from '../models/handball-statistic'; import { RugbyStatistic } from '../models/rugby-statistic'; import { TournamentGroup } from '../models/tournament-group'; import { TeamAchievement } from '../models/team-achievement'; import { WaterpoloStatistic } from '../models/waterpolo-statistic'; import { TournamentRound } from '../models/tournament-round'; import { TournamentDivision } from '../models/tournament-division'; import { UserGender } from '../models/user'; import { GameUserLimitations } from '../models/game-user-limitation'; import { GameHockeyPosition } from '../models/hockey-profile'; import { GameFootballPosition } from '../models/football-profile'; import { GameHandballPosition } from '../models/handball-profile'; import { GameWaterpoloPosition } from '../models/waterpolo-profile'; import { GameBasketballPosition } from '../models/basketball-profile'; import { GameVolleyballPosition } from '../models/volleyball-profile'; import { GameRugbyPosition } from '../models/rugby-profile'; import { WrestballStatistic } from '../models/wrestball-statistic'; import { TournamentRoundTeam } from '../models/tournament-round-team'; export interface TournamentGamesFilters { tournamentIds?: number[]; tournamentSeasonId?: number; tournamentStageId?: number; tournamentRoundId?: number; tournamentGroupId?: number; divisionId?: number; tournamentTour?: number; teamId?: number; playoffStage?: number; playoffRound?: number; playoffId?: number; isPlayoff?: boolean; status?: GameStatuses; statuses?: GameStatuses[]; tournamentCourtId?: number; leaguePlayerId?: number; userId?: number; query?: string; date_from?: string; date_to?: string; } export declare type StatisticGroupByTypes = 'team' | 'user' | 'team_user' | 'tournament_team' | 'league_player' | 'tournament_team_user' | 'month' | 'win_loses'; export interface StatisticFilters { league_id?: number; tournament_id?: number; tournament_ids?: number[]; tournament_season_id?: number; tournament_season_ids?: number[]; tournament_team_id?: number; league_player_id?: number; tournament_team_user_id?: number; team_id?: number; team_user_id?: number; user_id?: number; tournament_stage_id?: number; tournament_round_id?: number; division_id?: number; tournament_group_id?: number; tournament_tour?: number; playoff_stage?: number; playoff_round?: number; playoff_id?: number; is_playoff?: boolean; date_from?: string; date_to?: string; query?: string; gender?: UserGender; basketball_position?: GameBasketballPosition; volleyball_position?: GameVolleyballPosition; hockey_position?: GameHockeyPosition; football_position?: GameFootballPosition; handball_position?: GameHandballPosition; waterpolo_position?: GameWaterpoloPosition; rugby_position?: GameRugbyPosition; league_player_field_value?: { [key: string]: string; }; tournament_team_field_value?: { [key: string]: string; }; per_game?: boolean; group_by: StatisticGroupByTypes; only_closed?: boolean; check_ignore_game?: boolean; min_games_count?: number; order_by?: string; page?: number; size?: number; } export interface StatisticLeadersFilters { tournament_id?: number; tournament_ids?: number[]; tournament_season_id?: number; tournament_team_id?: number; team_id?: number; tournament_stage_id?: number; tournament_tour?: number; playoff_stage?: number; playoff_id?: number; date_from?: string; date_to?: string; per_game?: boolean; group_by: StatisticGroupByTypes; size?: number; fields: string[]; } export interface TournamentEventsListFilter { event?: TournamentEventTypes; search?: string; tournamentTour?: number; } export declare class TournamentApi { private httpClient; private configService; constructor(httpClient: HttpClient, configService: ConfigService); getById(tournamentId: number): Promise; getByAlias(leagueId: number, alias: string): Promise; getSeasonTournaments(seasonTournamentId: number): Promise; getNews(tournamentId: number): Promise; getEvents(tournamentId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise>; getTournamentStages(tournamentId: number): Promise; getTournamentRounds(tournamentId: number): Promise; getTournamentDivisions(tournamentId: number): Promise; getPlayoff(tournamentId: number): Promise; getPlayoffGames(playoffId: number, playoffNumber?: string): Promise; getGamesStages(tournamentId: number, roundId?: number): Promise; getGames(tournamentId: number, page: number, size: number, filters?: TournamentGamesFilters): Promise>; getGamesDates(tournamentId: number): Promise; getGroups(tournamentId: number): Promise; getTeams(tournamentId: number, groupId?: number, short?: boolean, micro?: boolean): Promise; getStageTeams(tournamentId: number): Promise; getTeamsAchievements(tournamentId: number): Promise; getTeamById(tournamentTeamId: number): Promise; getTeamRoundTeams(tournamentTeamId: number): Promise; getUserById(userId: number): Promise; getUserGames(tournamentUserId: number): Promise; downloadTable(tournamentId: number, format: 'pdf' | 'xlsx', isChess?: boolean): Promise; getBasketballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{ [key: string]: BasketballStatistic[]; }>; getVolleyballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{ [key: string]: VolleyballStatistic[]; }>; getHockeyStatisticLeaders(filters: StatisticLeadersFilters): Promise<{ [key: string]: HockeyStatistic[]; }>; getFootballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{ [key: string]: FootballStatistic[]; }>; getHandballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{ [key: string]: HandballStatistic[]; }>; getWaterpoloStatisticLeaders(filters: StatisticLeadersFilters): Promise<{ [key: string]: WaterpoloStatistic[]; }>; getBasketballStatistic(filters?: StatisticFilters): Promise>; getVolleyballStatistic(filters?: StatisticFilters): Promise>; getHockeyStatistic(filters?: StatisticFilters): Promise>; getFootballStatistic(filters?: StatisticFilters): Promise>; getHandballStatistic(filters?: StatisticFilters): Promise>; getRugbyStatistic(filters?: StatisticFilters): Promise>; getWaterpoloStatistic(filters?: StatisticFilters): Promise>; getWrestballStatistic(filters?: StatisticFilters): Promise>; getTournamentTeamUsers(tournamentTeamId: number, includes?: string[]): Promise; myPermission(tournamentId: number): Promise; getTournamentTeamTournaments(tournamentTeamId: number): Promise; getTournamentUserTournaments(tournamentTeamUserId: number): Promise; getTournamentTeamUsersLimitation(tournamentTeamId: number): Promise; downloadTeamSanctionList(tournamentTeamId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise; } export declare function applyGamesFilters(filters: TournamentGamesFilters, params: HttpParams): HttpParams; export declare function applyStatisticFilters(filters: StatisticFilters): object; export declare function applyStatisticLeadersFilters(filters: StatisticLeadersFilters, params: HttpParams): HttpParams;