import { Sports } from '../constants/sportType'; import { LineupsSection, LineupsSectionStatus } from '../constants/lineups'; import { FansUnitedConfig, IAssets, IBaseTeam, IConfigDate, IConfigEntityLinksOptional, ICountry, IElements, IFansUnitedDataLabels, IHighlightEntities, IKnockoutDataLabels, ILabels, ILivescoreDataLabels, IMatch, IMostDecoratedDataLabels, IPlayer, IPlayerDataElements, IPlayerDataLabels, IProgramDataLabels, ISingleEventDataLabels, ISportEntity, IStage, IStandingsDataLabels, ITabs, ITeamScore, ITeamSquadLabels, ITopScorersDataLabels, Markets, RefreshTimes, ShortNameType, ShortStatusType, Themes, WidgetType } from './common'; import { ILineupsPlayerEvents } from './footballApi'; export type IFootballConfig = IFootballTimelineConfig & IFootballMatchCenterConfig & IFootballLineupsConfig & IFootballOddsConfig & IFootballTeamH2hWidgetConfig & IFootballPlayerH2hConfig & ITeamSquadConfig & IStandingsConfig & ISingleEventConfig & IKnockoutConfig & IPlayerConfig & ITeamConfig & FansUnitedConfig & ITopScorersConfig & IMostDecoratedConfig & IPlayerStatisticsConfig & IRoundConfig & IMultiSportMatchesH2HConfig; interface IGeneralWidgetConfig { dataWidgetId: string; dataWidgetSport: Sports; dataWidgetType: WidgetType; dataTheme?: Themes | null; dataEntityLinks?: IConfigEntityLinksOptional; dataRefreshTime?: RefreshTimes; dataLabels?: ILabels; } export declare enum NameFormat { LAST_NAME = "last_name", INITIALS = "initials" } export interface IFootballLineupsConfig { dataWidgetId: string; dataWidgetSport: Sports; dataWidgetType: WidgetType; dataMatchId: IMatch['id']; dataElements?: { name: LineupsSection; status: LineupsSectionStatus; }[]; dataEntityLinks?: IConfigEntityLinksOptional; dataHeaderDisplay?: boolean; dataHomeTeamColor?: string; dataAwayTeamColor?: string; dataLabels?: { first_team?: string; substitutes?: string; no_data?: string; } & ILabels; dataRefreshTime?: RefreshTimes; dataTheme?: Themes | null; dataNameFormat?: NameFormat; dataCoachDisplay?: boolean; } export interface IFootballMatchCenterConfig extends IGeneralWidgetConfig { dataMatchId: IMatch['id']; dataTeamNameType?: ShortNameType | null; dataOddsDisplay?: boolean; dataBettingLogoClickAction?: boolean; dataBettingLogoOverlap?: boolean; dataOddsBettingId?: string | null; dataOddsTabBettingId?: string | null; dataOddsMarket?: Markets; dataOddsMarketValueType?: FootballOddMarketValueTypes; dataOddsScopeType?: ScopeTypes; dataOddsPreEventOnly?: boolean; dataMatchCenterMainEventsDisplay?: boolean; dataNameFormat?: NameFormat; dataDateFormat?: string; dataPenaltiesDisplay?: boolean; dataRankDisplay?: boolean; dataElements?: IElements; } export interface IFootballTimelineConfig extends IGeneralWidgetConfig { dataMatchId: IMatch['id']; widgetStartTime?: string | undefined; } export interface IMultiSportMatchesH2HConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataSportEntityOne: string; dataSportEntityTwo: string; dataLimit?: string; dataTeamNameType?: ShortNameType | null; dataRefreshTime: RefreshTimes; dataEntityLinks?: IConfigEntityLinksOptional; dataTheme?: Themes | null; dataLabels?: ILabels | null; dataOptionsDisplay?: boolean; dataHeaderDefaultOption?: string; dataDateFormat?: string; } export interface IFootballOddsConfig { dataWidgetId: string; dataWidgetSport: Sports; dataWidgetType: WidgetType; dataMatchId: IMatch['id'] | undefined; dataLabels?: { no_odds?: string; } & ILabels; dataOddsBettingId?: string | null; dataOddsMarket?: Markets; dataOddsMarketValueType?: FootballOddMarketValueTypes; dataOddsScopeType?: ScopeTypes; dataOddsPreEventOnly?: boolean; dataRefreshTime?: RefreshTimes; dataTheme?: Themes | null; dataBettingBrandColors?: boolean; dataBettingLogoClickAction?: boolean; dataBettingLogoOverlap?: boolean; } export interface IFootballTeamH2hWidgetConfig { dataRefreshTime?: RefreshTimes; dataWidgetId: string; dataWidgetSport: Sports; dataWidgetType: WidgetType; dataSportEntityOne: ISportEntity; dataSportEntityTwo: ISportEntity; dataElements?: string[]; dataEntityLinks?: IConfigEntityLinksOptional; dataHeaderDisplay?: boolean; dataLabels?: { odds?: string; } & ILabels; dataTheme?: Themes | null; } export interface IFootballTeamMatchH2hWidgetConfig { dataWidgetId: string; dataWidgetSport: Sports; dataWidgetType: WidgetType; dataMatchId: IMatch['id']; dataElements?: IElements; dataEntityLinks?: IConfigEntityLinksOptional; dataHeaderDisplay?: boolean; dataLabels?: { odds?: string; } & ILabels; dataOddsBettingId?: string | null; dataOddsDisplay?: boolean; dataOddsMarket?: Markets; dataOddsMarketValueType?: FootballOddMarketValueTypes; dataOddsScopeType?: ScopeTypes; dataOddsPreEventOnly?: boolean; dataRefreshTime?: RefreshTimes; dataTheme?: Themes | null; } export interface IFootballPlayerH2hConfig { dataRefreshTime?: RefreshTimes; dataWidgetId: string; dataWidgetSport: Sports; dataWidgetType: WidgetType; dataSportEntityOne: ISportEntity; dataSportEntityTwo: ISportEntity; dataElements?: string[]; dataEntityLinks?: IConfigEntityLinksOptional; dataHeaderDisplay?: boolean; dataLabels?: { vs?: string; } & ILabels; dataTheme?: Themes | null; } export interface ITeamSquadConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataTheme?: Themes | null; dataTeam?: string; dataSeason?: string; dataCompetition?: string; dataTeamNameType?: ShortNameType | null; dataEntityLinks?: IConfigEntityLinksOptional; dataHeaderDisplay?: boolean; dataLabels?: ITeamSquadLabels | null; dataHeaderDefaultOption?: string; dataElements?: IElements; dataOptionsDisplay?: boolean; dataImageDisplay?: boolean; } export interface ILivescoreConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataDate?: IConfigDate | null; dataOddsBettingId?: string | null; dataOddsDisplay?: boolean; dataOddsMarket?: Markets; dataOddsPreEventOnly?: boolean; dataOddsMarketValueType?: FootballOddMarketValueTypes; dataOddsScopeType?: ScopeTypes; dataTeamShortNameType?: ShortNameType | null; dataTeamNameType?: ShortNameType | null; dataRefreshTime: RefreshTimes; dataEntityLinks?: IConfigEntityLinksOptional; dataTheme?: Themes | null; dataPopularList?: string; dataLabels?: ILivescoreDataLabels | null; dataHeaderDisplay?: boolean; dataOptionsDisplay?: boolean; dataHeaderDefaultOption?: string; dataAllowInlineOdds?: boolean; dataBettingBrandColors?: boolean; dataBettingLogoClickAction?: boolean; dataBettingLogoOverlap?: boolean; } export interface IStandingsConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataTeamNameType?: ShortNameType | null; dataStage?: string; dataSeason?: string; dataCompetition?: string; dataHeaderDisplay?: boolean; dataOptionsDisplay?: boolean; dataGroups?: number[]; dataRefreshTime: RefreshTimes; dataEntityLinks?: IConfigEntityLinksOptional; dataTheme?: Themes | null; dataLabels?: IStandingsDataLabels | null; dataElementsDesktop?: string[]; dataElementsMobile?: string[]; dataImageDisplay?: boolean; dataHighlightEntities?: IHighlightEntities; dataOffset?: number; dataLimit?: string; } export interface IKnockoutConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataTeamNameType?: ShortNameType | null; dataStage?: string; dataSeason?: string; dataCompetition?: string; dataRefreshTime: RefreshTimes; dataEntityLinks?: IConfigEntityLinksOptional; dataTheme?: Themes | null; dataLabels?: IKnockoutDataLabels | null; } export interface ISingleEventConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataMatchId?: string; dataOddsBettingId?: string | null; dataOddsDisplay?: boolean; dataOddsMarket?: Markets; dataOddsPreEventOnly?: boolean; dataOddsMarketValueType?: FootballOddMarketValueTypes; dataOddsScopeType?: ScopeTypes; dataTeamShortNameType?: ShortNameType | null; dataTeamNameType?: ShortNameType | null; dataRefreshTime: RefreshTimes; dataEntityLinks?: IConfigEntityLinksOptional; dataShortStatusType?: ShortStatusType | null; dataTheme?: Themes | null; dataLabels?: ISingleEventDataLabels & IFansUnitedDataLabels; dataAdditionalInfo?: boolean; dataWrapperLink?: boolean; dataBettingBrandColors?: boolean; dataBettingLogoClickAction?: boolean; dataBettingLogoOverlap?: boolean; dataSingleEventMainEventsDisplay?: boolean; dataNameFormat?: NameFormat; dataDateFormat?: string; } export interface IPlayerConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataTeamNameType?: ShortNameType | null; dataShortStatusType?: ShortStatusType | null; dataPlayer?: string; dataTeam?: string; dataSeason?: string; dataCompetition?: string; dataMatchId?: string; dataRefreshTime: RefreshTimes; dataEntityLinks?: IConfigEntityLinksOptional; dataTheme?: Themes | null; dataLabels?: IPlayerDataLabels & ILabels; dataTabs?: ITabs; dataDisplayTabs?: boolean; dataDefaultTab?: string; dataElements?: IElements; dataOddsBettingId?: string | null; dataOddsDisplay?: boolean; dataOddsMarket?: Markets; dataOddsPreEventOnly?: boolean; dataOddsMarketValueType?: FootballOddMarketValueTypes; dataOddsScopeType?: ScopeTypes; dataDateFormat?: string; } export interface IPlayerStatisticsConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataTeamNameType?: ShortNameType | null; dataPlayer?: string; dataSeason?: string; dataMatchId?: string; dataRefreshTime: RefreshTimes; dataEntityLinks?: IConfigEntityLinksOptional; dataTheme?: Themes | null; dataLabels?: IPlayerDataLabels & ILabels; dataElements?: IPlayerDataElements; dataOddsBettingId?: string | null; dataOddsDisplay?: boolean; dataOddsMarket?: Markets; dataOddsPreEventOnly?: boolean; dataOddsMarketValueType?: FootballOddMarketValueTypes; dataOddsScopeType?: ScopeTypes; dataMatchDisplay?: boolean; dataStatisticsDisplay?: boolean; dataDateFormat?: string; dataDisplaySocialIcons?: boolean; dataAllowInlineOdds?: boolean; dataBettingBrandColors?: boolean; dataBettingLogoClickAction?: boolean; dataBettingLogoOverlap?: boolean; } export interface IMostDecoratedConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataSeason?: string; dataCompetition?: string; dataEntityLinks?: IConfigEntityLinksOptional; dataTheme?: Themes | null; dataLabels?: IMostDecoratedDataLabels | null; dataHighlightEntities: IHighlightEntities; dataTeamNameType?: ShortNameType | null; dataHeaderDisplay?: boolean; dataLimit?: string; dataStartPosition?: string; dataElements?: string[]; dataImageDisplay?: boolean; } export interface ITeamConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataTeamNameType?: ShortNameType | null; dataShortStatusType?: ShortStatusType | null; dataTeam?: string; dataSeason?: string; dataMatchId?: string; dataRefreshTime: RefreshTimes; dataEntityLinks?: IConfigEntityLinksOptional; dataTheme?: Themes | null; dataLabels?: IPlayerDataLabels & ILabels; dataElements?: IPlayerDataElements; dataOddsBettingId?: string | null; dataOddsDisplay?: boolean; dataOddsMarket?: Markets; dataOddsPreEventOnly?: boolean; dataOddsMarketValueType?: FootballOddMarketValueTypes; dataOddsScopeType?: ScopeTypes; dataMatchDisplay?: boolean; dataStatisticsDisplay?: boolean; dataDisplaySocialIcons?: boolean; dataDisplayTeamImage?: boolean; dataAllowInlineOdds?: boolean; dataBettingBrandColors?: boolean; dataBettingLogoClickAction?: boolean; dataBettingLogoOverlap?: boolean; dataDateFormat?: string; } export interface ITopScorersConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataSeason?: string; dataCompetition?: string; dataEntityLinks?: IConfigEntityLinksOptional; dataTheme?: Themes | null; dataLabels?: ITopScorersDataLabels | null; dataTeamNameType?: ShortNameType | null; dataTeamIds?: string[]; dataHighlightEntities?: IHighlightEntities; dataHeaderDisplay?: boolean; dataLimit?: string; dataStartPosition?: string; dataElements?: IElements; dataImageDisplay?: boolean; } export interface IRoundConfig { dataWidgetSport: string; dataWidgetType: WidgetType; dataWidgetId: string; dataSeason?: string; dataStage?: string; dataRound?: string; dataLimit?: string; dataCompetition: string; dataOddsBettingId?: string | null; dataOddsDisplay?: boolean; dataOddsMarket?: Markets; dataOddsPreEventOnly?: boolean; dataOddsMarketValueType?: FootballOddMarketValueTypes; dataOddsScopeType?: ScopeTypes; dataTeamNameType?: ShortNameType | null; dataRefreshTime: RefreshTimes; dataEntityLinks?: IConfigEntityLinksOptional; dataTheme?: Themes | null; dataLabels?: IProgramDataLabels; dataHeaderDisplay?: boolean; dataDropdownDisplay?: boolean; dataAllowInlineOdds?: boolean; dataSortDirection?: string; dataBettingBrandColors?: boolean; dataBettingLogoClickAction?: boolean; dataBettingLogoOverlap?: boolean; dataDateFrom?: IConfigDate; dataDateTo?: IConfigDate; dataDateFormat?: string; } export type FootballLivescoreMatchStatus = 'upcoming' | 'live' | 'finished' | 'popular'; export type FootballOddMarketValueTypes = 'fractional' | 'moneyline' | 'decimal'; export declare enum ScopeTypes { FIRST_HALF = "FIRST_HALF", SECOND_HALF = "SECOND_HALF", ORDINARY_TIME = "ORDINARY_TIME", FULL_TIME = "FULL_TIME", ALL = "ALL" } export interface ITeamStatistics { corners?: number | null; counter_attacks?: number | null; crosses?: number | null; fouls_committed?: number | null; goal_kicks?: number | null; goals?: number | null; offside?: number | null; possession?: number | null; red_cards?: number | null; yellow_cards?: number | null; shots_blocked?: number | null; shots_off?: number | null; shots_on?: number | null; substitutions?: number | null; throw_in?: number | null; treatments?: number | null; } export interface ITeamMatchStatistics { eventId: string; team: IBaseTeam; isHomeTeam: boolean; statistics: ITeamStatistics; updatedAt: string; } export interface ILineups { awayTeam: IMatchTeamLineup; homeTeam: IMatchTeamLineup; matchId: string; status: LineupsStatus; } export declare enum LineupsStatus { CONFIRMED = "CONFIRMED", UNCONFIRMED = "UNCONFIRMED", NOT_AVAILABLE = "NOT_AVAILABLE" } export interface IMatchTeamLineup { teamId: string; players: IMatchPlayerLineup[]; coach: ICoach | null; formation: string; } export interface IMatchPlayerLineup { player: IPlayer; positionX: number | null; positionY: number | null; shirtNumber: number; type: IType; events: IMatchEvent[]; } export declare enum EventTypeCode { YELLOW_CARD_RED = "YELLOW_RED_CARD", PENALTY_SHOOTOUT_MISSED = "PENALTY_SHOOTOUT_MISSED", PENALTY_SHOOTOUT_SCORED = "PENALTY_SHOOTOUT_SCORED", SUBSTITUTION = "SUBSTITUTION", GOAL = "GOAL", RED_CARD = "RED_CARD", PENALTY_MISS = "PENALTY_MISS", YELLOW_CARD = "YELLOW_CARD", ASSIST = "ASSIST", PENALTY_GOAL = "PENALTY_GOAL", OWN_GOAL = "OWN_GOAL", DISALLOWED_GOAL = "DISALLOWED_GOAL", DISALLOWED_MISSED_PENALTY = "DISALLOWED_MISSED_PENALTY", DISALLOWED_PENALTY = "DISALLOWED_PENALTY", DISALLOWED_OWN_GOAL = "DISALLOWED_OWN_GOAL", KICKOFF = "KICKOFF", HALFTIME = "HALFTIME", START_SECOND_HALF = "START_SECOND_HALF", FINISHED_FIRST_HALF = "FINISHED_FIRST_HALF", FINISHED_AFTER_EXTRA_TIME = "FINISHED_AFTER_EXTRA_TIME", FINISHED_AFTER_PENALTIES = "FINISHED_AFTER_PENALTIES", OVERTIME_FIRST_HALF = "OVERTIME_FIRST_HALF", OVERTIME_FIRST_HALF_END = "OVERTIME_FIRST_HALF_END", OVERTIME_SECOND_HALF = "OVERTIME_SECOND_HALF", INJURY_TIME = "INJURY_TIME", FINISHED = "FINISHED" } export interface IType { id: string; name: string; code: string; category: string; } export interface ICoach { id: string; name: string; country: ICountry; birthdate: string; gender: string; assets: IAssets; slug: string; } export interface IMatchEvent { id: string; matchId: string; typeCode: EventTypeCode; teamPosition: string; minute: number; teamId: string; primaryPlayer: IPlayer; secondaryPlayer: IPlayer; score?: ITeamScore; } export interface IMatchEventSnakeCase { id: string; matchId: string; type_code: EventTypeCode; team_position: string; minute: number; teamId: string; primary_player: IPlayer; secondary_player: IPlayer; score?: ITeamScore; injury_minute?: number; injury_time_minutes?: number; } export interface IRounds { stage: IStage; rounds: { label: string; value: string; }[]; } export interface ITeamProfileStatistics { goals_conceded?: number | null; goals_scored?: number | null; defeats?: number | null; draw?: number | null; win?: number | null; played?: number | null; rank?: number | null; points?: number | null; } export interface IFootballTeam { country: { id: number; name: string; slug: string; url_flag: string; }; founded: number; gender: string; id: number; name: string; national: boolean; short_name: string | null; slug: string; social: { facebook_id: string | null; instagram_id: string | null; twitter_id: string | null; web: string | null; wikipedia_id: string | null; }; three_letter_code: string | null; type: string; undecided: boolean; url_away_kit: string | null; url_home_kit: string | null; url_logo: string | null; url_squad_image: string | null; } export interface IFootballSeasonV2 { id: string; name: string; slug: string; tournament: IFootballTournamentV2; status: string; uuid: string; } export interface IFootballTournamentV2 { id: string; name: string; slug: string; country: IFootballCountryV2; assets: { logo: { url: string; }; }; } export interface IFootballCountryV2 { id: string; name: string; slug: string; assets: { flag: { url: string; }; }; } export interface INormalizeLineups { homeTeam: INormalizeLineupsTeam; awayTeam: INormalizeLineupsTeam; startingLine: INormalizeLineupsPlayersGroup; substitutedPlayers: INormalizeLineupsPlayersGroup; substitutions: INormalizeLineupsPlayersGroup; } export interface INormalizeLineupsTeam { coach: INormalizeLineupsCoach; } export interface INormalizeLineupsCoach { id: string; name: string; image: string; formation?: string; url: string; urlTarget: string; } export interface INormalizeLineupsPlayersGroup { homePlayers?: INormalizeLineupsPlayer[]; awayPlayers?: INormalizeLineupsPlayer[]; } export interface INormalizeLineupsPlayer { id: string; name: string; fullName: string; image: string; thumbImage: string; shirtNumber: number; type: string; events: ILineupsPlayerEvents[] | null; position: number; href: string; urlTarget: string; } export interface INormalizeLineupsMatch { homeTeam: { id: string; name: string; slug: string; logo: string; shirtColor: string; url: string; }; awayTeam: { id: string; name: string; slug: string; logo: string; shirtColor: string; url: string; }; tabOptions: { value: string; label: string; }[]; urlTarget: string; } export interface OddValue { label: string; value: number; } export {};