import { IFootballLineupsConfig, IFootballTeam, IFootballTournamentMatch, IKnockout, ILineups, ILivescoreConfig, IMainEvent, IMatch, IMatchEventSnakeCase, IMinute, IMostDecoratedConfig, INormalizedTournamentData, IOddsV2, IPlayer, IPlayerConfig, IRound, IRule, IScore, ISeason, ISingleEventConfig, ISportEntity, IStage, IStanding, IStandingsConfig, IStatistic, IStatus, ITeam, ITeamConfig, ITeamMatchStatistics, ITeamProfileStatistics, ITeamSeason, ITeamSquadConfig, ITeamStage, ITopScorersConfig, ITournament, ITournamentGroup, IWinner, Score, ScoreType, SDKOptions, WinnerReason } from '.'; import { ITimelineProps } from '../services/football/matchEvents'; import { IFootballSeasonV2 } from './football'; import { OddResponse } from '../odds/types/odds'; export interface IMatchList { round?: IRound; tournament?: ITournament; matches: IFootballTournamentMatch[]; } export interface ITournamentProgrammeMatchList { stage?: IStage; matches: IMatchList[]; } export interface ITournamentResponseData { tournament: ITournament; } export interface IFootballSingleEventResponseData { match: IMatch; odds?: IOddsV2; } export interface IProgrammeResponseData { programme: IMatchList[]; team: ITeam; fixturesCount: number; resultsCount: number; } export interface ITournamentProgrammeResponseData { programme: ITournamentProgrammeMatchList[]; tournament: ITournament; fixturesCount: number; resultsCount: number; } export interface ISeasonsResponseData { seasons: ISeason[]; } export interface ISeasonsResponseDataV2 { seasons: IFootballSeasonV2[]; } export interface IPlayerResponseData { playerStatistics: IPlayerResponse[] | undefined; } export interface IPlayerStatisticsResponseData { statistics: IPlayerResponse[] | undefined; } export interface ITeamStatisticsResponseData { season: ISeason; statistics: ITeamProfileStatistics; team: IFootballTeam; tournament: { id: number; name: string; slug: string; url_logo: string; }; } export interface IPlayerResponse { player: IPlayer; season: ISeason; statistics: IStatistic[]; teams: ITeam[]; matchData?: { match: IMatch; odds: IOddsV2; }; } export interface IPlayerInformationResponseData { active: boolean; active_seasons: { id: string; legacy_id?: string; name: string; tournament: { assets: { logo: { url: string; }; }; id: string; legacy_id?: string; name: string; slug: string; }; }[]; assets: { image: { url: string; }; thumb: { url: string; }; thumb_transparent_background: { url: string; }; }; birth_city: string; birthdate: string; country: IFootballCountry; current_season: { id: string; name: string; slug: string; status: string; tournament: { id: string; legacy_id?: string; name: string; slug: string; }; }; form: { id: string; legacy_id?: string; result: { type: string; results: { value: string; position: string; }[]; }[]; participants: { id: string; name: string; position: string; }[]; outcome: string; slug: string; start_time: string; }[]; gender: string; id: string; legacy_id?: string; name: string; position: string; profile: { height: string; weight: string; }; slug: string; social: { facebook_id: string; instagram_id: string; twitter_id: string; web: string; youtube_channel_id: string; }; teams: { shirt_number: string; status: string; team: { assets: { logo: { url: string; }; }; country: IFootballCountry; type: string; slug: string; id: string; legacy_id?: string; name: string; }; }[]; } export interface ITeamInformationResponseData { id: string; name: string; slug: string; three_letter_code: string; short_name: string; type: string; founded: number; country: IFootballCountry; venue: { id: string; name: string; }; social: { facebook_id: string; instagram_id: string; twitter_id: string; web: string; youtube_channel_id: string; }; active_seasons: { id: string; name: string; tournament: { assets: { logo: { url: string; }; }; id: string; name: string; slug: string; }; }[]; assets: { logo: { url: string; }; squad_image: { url: string; }; }; current_season: { id: string; name: string; slug: string; status: string; tournament: { id: string; name: string; slug: string; }; }; form: { id: string; result: { type: string; results: { value: string; position: string; }[]; }[]; participants: { id: string; name: string; position: string; }[]; outcome: string; slug: string; start_time: string; }[]; } export interface IStageResponse { type: string; tournamentId: string; tournamentSeasonId: string; data: IKnockout[] & IStanding[] & ITournamentGroup[]; } export interface IStageResponseData { stage: IStageResponse; rules?: IRule[]; } export interface IStageListResponseData { stageList: IStage[]; } export interface ITeamResponse { team: ITeam; statistics: IStatistic; season: ITeamSeason; tournament: ITournament; stages: ITeamStage[]; matchData?: { match: IMatch; odds: IOddsV2; relevant: boolean; statistics: ITeamMatchStatistics[]; }; } export interface ITeamResponseData { teamStatistics: ITeamResponse[]; } export interface ITeamSquadResponse { active: boolean; id: string; name: string; slug: string; tournament: ITournament; items: ITeamSquadItem[]; } export interface ITeamSquadResponseData { teamSquad: { squad: ITeamSquadResponse[]; seasons: ITeamSeason[]; }; } export interface ITopScorersResponseData { topScorers?: ITopScorersResponse[]; topScorersError?: string; } export interface ITopScorersResponse { assists: number | null; rank: number | null; goals: number | null; minutes: number | null; penalties: number | null; played: number | null; scoredFirst: number | null; yellowCards: number | null; redCards: number | null; missedPenalties: number | null; player: ITopScorersPlayer; team: ITopScorersPlayerTeam; } export interface ITopScorersPlayer { id: string | null; name: string | null; slug: string | null; urlImage: string | null; urlThumb: string | null; } export interface ITopScorersPlayerTeam { id: string; name: string | null; slug: string | null; logo: string; shortName: string | null; threeLetterCode: string | null; type: string | null; } export interface IMatchesV2Response { matches: IMatchV2[]; } export interface IMatchV2 { id: string; legacy_id?: string; slug: string; kickoff_time?: string; stage: IStage; season: IFootballSeasonV2; home_team: IMatchTeam; away_team: IMatchTeam; coverage?: string; status: IFootballStatusV2; round: IRound; score?: IScore & { [key in ScoreType]: Score; }; minute?: IFootballMatchMinuteV2; winner?: IWinner; odds: OddResponse[]; } export interface IFootballMatchMinuteV2 { regular_time?: number | null; injury_time?: number | null; } export interface IFootballStatusV2 { id: string; name: string; type: string; code: string; short_name: string; } export interface IMatchTeam { assets: { logo: { url: string; }; }; gender: string; id: string; legacy_id: string; name: string; short_name: string | null; slug: string; three_letter_code: string; shirt_color: string; } export interface ISeasonsDetailsResponse { season: ISeason; stages: ISeasonsDetailsStages[]; } export interface ISeasonsDetailsStages { stage: IStage; rounds: StageRound[]; } interface StageRound { status: string; id: string; name: string; } export interface ITeamSquadApi { getTeamSquad(params: IGetTeamSquadParams): Promise | undefined; } export interface ITeamApi { getTeam(params: IGetTeamParams): Promise | undefined; } export interface IStageListApi { getStageList(params: IGetStageListParams): Promise | undefined; } export interface IStageApi { getStage(params: IGetStageParams): Promise | undefined; } export interface IPlayerApi { getPlayer(params: IGetPlayerParams): Promise | undefined; } export interface ISeasonsApi { getSeasons(params: IGetSeasonsParams): Promise | undefined; } export interface ICompetitionApi { getCompetition(params: IGetCompetitionParams): Promise | undefined; } export interface IFootballMatchApi { getMatchById(params: IGetMatchByIdParams): Promise | undefined; } export interface ILineupsApi { getLineups(params: IGetLineupsParams): Promise | undefined; } export interface ITimelineApi { getTimeline(params: ITimelineProps, sdkOptions: SDKOptions): Promise; } interface IGetCompetitionParams { signal: AbortSignal; competitionId?: number | string; } interface IGetCompetitionParams { signal: AbortSignal; competitionId?: number | string; } export interface ITopScorersApi { getTopScorers(params: IGetTopScorersParams): Promise | undefined; } interface IGetStageListParams { signal: AbortSignal; stageId?: string | number; seasonId?: string | number; competitionId?: string | number; } export interface IGetTopScorersParams { signal: AbortSignal; dataSeason: ITopScorersConfig['dataSeason']; dataCompetition?: ITopScorersConfig['dataCompetition']; dataLimit?: ITopScorersConfig['dataLimit']; dataStartPosition?: ITopScorersConfig['dataStartPosition']; dataTeamIds?: ITopScorersConfig['dataTeamIds']; } export interface IGetMostDecoratedParams { signal: AbortSignal; dataSeason: IMostDecoratedConfig['dataSeason']; dataLimit: IMostDecoratedConfig['dataLimit']; dataStartPosition: IMostDecoratedConfig['dataStartPosition']; } interface IGetMatchByIdParams { signal: AbortSignal; dataMatchId: ISingleEventConfig['dataMatchId']; dataOddsDisplay: ISingleEventConfig['dataOddsDisplay']; dataOddsBettingId: ISingleEventConfig['dataOddsBettingId']; dataOddsPreEventOnly: ILivescoreConfig['dataOddsPreEventOnly']; dataOddsMarketValueType: ILivescoreConfig['dataOddsMarketValueType']; dataOddsMarket?: ISingleEventConfig['dataOddsMarket']; dataOddsScopeType?: ISingleEventConfig['dataOddsScopeType']; dataSingleEventMainEventsDisplay?: ISingleEventConfig['dataSingleEventMainEventsDisplay']; dataDisplayLineupStatus?: boolean; } interface IGetSeasonsParams { teamId?: string; signal: AbortSignal; competitionId?: string; } interface IGetPlayerParams { signal: AbortSignal; dataCompetition: IPlayerConfig['dataCompetition']; dataPlayer: IPlayerConfig['dataPlayer']; dataSeason: IPlayerConfig['dataSeason']; dataTeam: IPlayerConfig['dataTeam']; dataMatchId: IPlayerConfig['dataMatchId']; dataOddsDisplay: IPlayerConfig['dataOddsDisplay']; dataOddsBettingId: IPlayerConfig['dataOddsBettingId']; dataOddsPreEventOnly: IPlayerConfig['dataOddsPreEventOnly']; dataOddsMarketValueType: IPlayerConfig['dataOddsMarketValueType']; dataOddsMarket?: IPlayerConfig['dataOddsMarket']; dataOddsScopeType?: IPlayerConfig['dataOddsScopeType']; requestFallbackInfo?: boolean; } interface IGetStageParams { signal: AbortSignal; stageId?: string | number; competitionId?: string | number; seasonId?: string | number; stageType?: string; dataGroups?: IStandingsConfig['dataGroups']; dataOffset?: IStandingsConfig['dataOffset']; dataLimit?: IStandingsConfig['dataLimit']; } interface IGetTeamParams { signal: AbortSignal; dataTeam: ITeamConfig['dataTeam']; dataSeason: ITeamConfig['dataSeason']; dataMatchId: ITeamConfig['dataMatchId']; teamToCompareWith?: ISportEntity; dataOddsDisplay: ITeamConfig['dataOddsDisplay']; dataOddsBettingId: ITeamConfig['dataOddsBettingId']; dataOddsPreEventOnly: ITeamConfig['dataOddsPreEventOnly']; dataOddsMarketValueType: ITeamConfig['dataOddsMarketValueType']; dataOddsMarket?: ITeamConfig['dataOddsMarket']; dataOddsScopeType?: ITeamConfig['dataOddsScopeType']; } interface IGetTeamSquadParams { signal: AbortSignal; dataTeam: ITeamSquadConfig['dataTeam']; dataSeason: ITeamSquadConfig['dataSeason']; dataCompetition: ITeamSquadConfig['dataCompetition']; } export interface IUseFootballApi { $football?: IFootballMatchApi; $competition?: ICompetitionApi; $stageList?: IStageListApi; $stage?: IStageApi; $player?: IPlayerApi; $team?: ITeamApi; $teamSquad?: ITeamSquadApi; $seasons?: ISeasonsApi; $topScorers?: ITopScorersApi; $lineups?: ILineupsApi; $timeline?: ITimelineApi; } export interface IGetLineupsParams { signal: AbortSignal; dataMatchId: IFootballLineupsConfig['dataMatchId']; dataGroupPlayersByCategories?: boolean; } export interface ILineupsResponseData { lineups?: ILineups; lineupsError?: string; } export interface INormalizedFootballTeam { name: string; logo: string; id: string | number; url: string; shirtColor: string | undefined; threeLetterCode: string | undefined; } export interface INormalizedFootballMatch { id: string; homeTeam: INormalizedFootballTeam; awayTeam: INormalizedFootballTeam; tournament: INormalizedTournamentData; round: IRound; date: string; status?: string; homeTeamScore: string | number; awayTeamScore: string | number; matchStatus?: IStatus; kickOffTime?: string; minute?: IMinute; matchLink: string; urlTarget: string; aggregateWinnerId?: string | null; winnerReason?: WinnerReason | null; score?: IScore & { [key in ScoreType]: Score; }; winnerId: string | undefined; mainEvents?: IMainEvent[]; } export interface INormalizedMatchV2 { id: string; date: string; status?: string; startTime: string; isLive: boolean; isFinished: boolean; minute: any; score: string; url?: string; target: string; homeTeam: INormalizedTeamV2; awayTeam: INormalizedTeamV2; odds: OddResponse[]; tournament: string; } export interface ILineupTeamDetailsData { formation?: string; coach?: { id: string; legacy_id: string; name: string; slug: string; country: { id: string; name: string; slug: string; code: string | null; assets: { flag: { url: string; }; }; uuid: string; }; birthdate: string; gender: string; assets: { thumb: { url: string; }; }; uuid: string | null; }; team_id?: string; players?: { events: ILineupsPlayerEvents[] | null; type: { id: string; name: string; category: string; code: string; uuid: string; }; player: ILineupsPlayer; position_x: number; position_y: number; shirt_number: number; }[]; } export interface ILineupsPlayerEvents { id: string; match_id: string; type_code: string; team_position: string; minute: number; injury_minute: number | null; injury_time_minutes: number | null; team_id: string; primary_player: { id: string; name: string; slug: string; position: string; gender: string; country: { id: string; name: string; slug: string; code: string | null; assets: { flag: { url: string; }; }; uuid: string; }; active: boolean; birthdate: string; birth_city: string | null; profile: { height: string; weight: string; }; social: unknown[]; uuid: string; assets: { thumb: { url: string; }; image?: { url: string; }; thumb_transparent_background?: { url: string; }; }; } | null; secondary_player: { id: string; name: string; slug: string; position: string; gender: string; country: { id: string; name: string; slug: string; code: string | null; assets: { flag: { url: string; }; }; uuid: string; }; active: boolean; birthdate: string; birth_city: string | null; profile: { height: string; weight: string; }; social: unknown[]; uuid: string; assets: { thumb: { url: string; }; image?: { url: string; }; thumb_transparent_background?: { url: string; }; }; } | null; score: { home: number; away: number; } | null; } export interface ILineupsPlayer { id: string; legacy_id: string; name: string; slug: string; position: string; gender: string; country: { id: string; name: string; slug: string; code: string | null; assets: { flag: { url: string; }; }; uuid: string; }; active: boolean; birthdate: string; birth_city: string | null; profile: { height: string; weight: string; }; social: unknown[]; uuid: string; assets: { thumb: { url: string; }; image?: { url: string; }; thumb_transparent_background?: { url: string; }; }; } export interface IMatchLineupsResponseData { match_id: string; status: string; home_team: ILineupTeamDetailsData; away_team: ILineupTeamDetailsData; } export interface INormalizedStageMatches { stage: { id: string; name: string; url?: string; target?: string; standingsUrl: string; }; data: { round: { id: string; name: string; url?: string; target?: string; }; matches: INormalizedMatchV2[]; }[]; } export interface INormalizedTeamV2 { id: string; name: string; logo: string; score: string; isWinner: boolean; winnerReason: string; } export interface IFootballCountry { assets: { flag: { url: string; }; }; code: string; id: string; name: string; slug: string; } export declare enum LineupsEventTypes { SUB = "sub", START = "start" } export interface ITeamSquadPlayer { active: boolean; birthdate: string; id: string; legacy_id?: string; name: string; position: string; url_thumb: string; url_image: string; url_thumb_transparent_background: string; slug: string; country: { id: number; name: string; url_flag: string; }; } export interface ITeamSquadItem { assists: number; cleansheets: number; goals: number; goals_substitute: number; minutes: number; minutes_substitute: number; played: number; position: string; red_cards: number; shirt_number: number; started: number; substitute: number; substitute_in: number; substitute_out: number; yellow_cards: number; conceded: number; player: ITeamSquadPlayer; } export interface IPlayerStatsData { player: { id: string; slug: string; image: string; name: string; flag: string; rank: string; url: string; url_target: string; team_name?: string; is_highlighted: boolean; }; elements: { [x: string]: string; }; } export interface ITeamSquadPositionPlayerStatsData { [position: string]: IPlayerStatsData[]; } export {};